POSC Specifications: Epicentre Version 3.0 | Logical Data Model |
Eliminate all subtypes of Activity and move any required behavior up to Activity. In order to capture most of the existing behavior, create Object_activity_involvement as a transient association between Activity and Object_of_interest.
CHANGE ERP_activity_drop_subtypes (*<REMARK>======================= Drop unsupportable behavior.===============================*) (*<REMARK>====These should be replaced with a new capability to capture versionable associations and an aggregate of micro-opinions.====*) ALTER ENTITY geologic_age_classification; DROP geoscience_interpretation (*<CHANGE>This is attempting to version an association. Not all of these should be versionable (e.g. the new relationship to Material_class).*); UNIQUE ALTER si DROP geoscience_interpretation; END_ENTITY; ALTER ENTITY earth_model; DROP geoscience_interpretation (*<CHANGE>This is related to the geologic_age_classification problem.*); UNIQUE ALTER si DROP geoscience_interpretation; END_ENTITY; ALTER ENTITY geologic_process_sequence; DROP geoscience_interpretation (*<CHANGE>This is related to the geologic_age_classification problem.*); (*<REMARK>Note that the attribute is not part of the SI rule.*) END_ENTITY; (*<REMARK>============ Modifications which are required in order to delete the activity subtypes.==================*) (*<REMARK>-----Activity identification-----*) ALTER ENTITY activity DROP ABSTRACT; ALTER kind DROP OPTIONAL; ALTER identifier DROP OPTIONAL; ADD activity_context : OPTIONAL locatable_object (*<DESC>The object within whose context the activity is identified.*) (*<VERB>be identified within the context of*) (*<CHANGE>Replaces the following: Digitize_document.source_document (material) Document_circulation.document (material) Well_activity.well (facility) Well_completion_activity.site (facility) Wellbore_activity.wellbore (facility) cement_casing_string.casing_string (facility) seismic_acquisition_activity.seismic_geometry_set (earth_feature) seismic_processing_activity.seismic_geometry_set (earth_feature) *); UNIQUE ADD si : identifier, ref_existence_kind, kind, containing_activity, activity_context; END_ENTITY; ALTER ENTITY locatable_object; INVERSE ADD activity : SET[0:?] OF activity FOR activity_context (*<DESC>The activities which are identified within the context of this object.*) (*<VERB>identify*); END_ENTITY; ALTER ENTITY well; INVERSE DROP well_activity (*<CHANGE>Redundant to Locatable_object.activity.*); END_ENTITY; ALTER ENTITY wellbore; INVERSE DROP wellbore_activity (*<CHANGE>Redundant to Locatable_object.activity.*); END_ENTITY; ALTER ENTITY seismic_geometry_set; DROP seismic_acquisition_activity (*<CHANGE>Redundant to Locatable_object.activity.*); DROP seismic_processing_activity (*<CHANGE>Redundant to Locatable_object.activity.*); END_ENTITY; (*<REMARK>-----process data-----*) ALTER ENTITY wavelet_or_filter DROP SUBTYPE OF (technical_object) ADD SUBTYPE OF (process_data); DROP seismic_processing_activity (*<CHANGE>Redundant to Process_data.activity.*); UNIQUE ALTER si DROP seismic_processing_activity ADD activity LAST; END_ENTITY; ALTER ENTITY seismic_header DROP SUBTYPE OF (technical_object) ADD SUBTYPE OF (process_data); DROP seismic_processing_activity (*<CHANGE>Redundant to Process_data.activity.*); UNIQUE ALTER si ADD activity LAST; END_ENTITY; ALTER ENTITY well_log_trace; DROP digitize_document (*<CHANGE>Now redundant to Process_data.activity.*); DROP borehole_generation_run (*<CHANGE>Now redundant to Process_data.activity.*); DROP production_logging (*<CHANGE>Now redundant to Process_data.activity.*); DROP wireline_logging_pass (*<CHANGE>Now redundant to Process_data.activity.*); INVERSE DROP log_trace_analysis (*<CHANGE>Now redundant to Process_data.process_data_item.*); UNIQUE ALTER si DROP borehole_generation_run, production_logging, wireline_logging_pass; END_ENTITY; DROP ENTITY log_trace_analysis_usage (*<CHANGE>NEW INTERSECTION. Now redundant to process_data_item.*); (*<REMARK>---- seismic facilities ------*) ALTER ENTITY seismic_facility; ALTER seismic_acquisition_activity AS identifying_context ALTER TYPE AS seismic_geometry_set (*<DESC>The geometry set within whose context this facility was created and utilized.*) (*<VERB>exist within the context of*) (*<CHANGE>Alter the context of seismic facilities as a replacement for an activity in the SI.*); END_ENTITY; ALTER ENTITY seismic_geometry_set; INVERSE ADD identified_facilities : SET[0:?] OF seismic_facility FOR identifying_context (*<DESC>The seismic facilities whose existence is defined within the context of this geometry set.*) (*<VERB>provide the scope of existence for*); END_ENTITY; DROP ENTITY observation_definition (*<CHANGE>This is attempting to support UKOOA P2-91 style positioning but it does not do it very well. This should remain on a UKOOA tape and the resulting processed positions can then be populated into the data store.*); DROP ENTITY pty_event_observation; DROP TYPE ndt_event_observation_array; ALTER ENTITY vertex; INVERSE DROP observed_reference; DROP observed_baseline; END_ENTITY; ALTER ENTITY position_sensor_facility; INVERSE DROP observing; END_ENTITY; ALTER ENTITY pty_plane_angle; DROP observation_definition; UNIQUE ALTER si DROP observation_definition; END_ENTITY; ALTER ENTITY pty_azimuth ; DROP observation_definition; UNIQUE ALTER si DROP observation_definition; END_ENTITY; ALTER ENTITY pty_length; DROP observation_definition; UNIQUE ALTER si DROP observation_definition; END_ENTITY; ALTER ENTITY pty_source_start_time; INVERSE DROP pty_event_observation; END_ENTITY; (*<REMARK>---- Add identifying context to subtypes of Material as a replacement for Activities in their SI.------*) ALTER ENTITY fluid_sample; UNIQUE ALTER si ADD well_test_recovery LAST (*<CHANGE>Allow the sample to be partially identified by the source fluid. This replaces the use of activities as part of the SI rule.*); END_ENTITY; ALTER ENTITY rock_component; UNIQUE ALTER si ADD rock_material LAST (*<CHANGE>Allow a component material to be partially identified by its parent material. This replaces the use of activities as part of the SI rule.*); END_ENTITY; ALTER ENTITY paleontology_slide; UNIQUE ALTER si ADD rock_material LAST (*<CHANGE>Allow the materials on the slide to be partially identified by their parent material. This replaces the use of activities as part of the SI rule.*); END_ENTITY; ALTER ENTITY rock_powder_sample; UNIQUE ALTER si ADD rock_material LAST (*<CHANGE>Allow the sample on the slide to be partially identified by the parent material. This replaces the use of activities as part of the SI rule.*); END_ENTITY; ALTER ENTITY outcrop_sample; UNIQUE ALTER si ADD rock_material LAST (*<CHANGE>Allow the sample on the slide to be partially identified by the parent outcrop. This replaces the use of activities as part of the SI rule.*); END_ENTITY; ALTER ENTITY core; ADD wellbore : OPTIONAL wellbore (*<DESC>This is the wellbore from which this core was extracted.*) (*<VERB>be extracted from*); UNIQUE ALTER si ADD wellbore, rock_material LAST (*<CHANGE>Allow a core to be partially identified by the parent core and/or the parent wellbore. This replaces the use of activities as part of the SI rule.*); END_ENTITY; ALTER ENTITY drill_cuttings_sample; ADD wellbore : OPTIONAL wellbore (*<DESC>This is the wellbore from which these cuttings were extracted.*) (*<VERB>be extracted from*); UNIQUE ALTER si ADD wellbore LAST (*<CHANGE>Allow cuttings to be partially identified by the parent wellbore. This replaces the use of activities as part of the SI rule.*); END_ENTITY; ALTER ENTITY filter_cake; ADD wellbore : OPTIONAL wellbore (*<DESC>This is the wellbore within whose context this filter cake was extracted. For example, this would be the wellbore which was being circulated at the time that fluids were taken from the mud pit.*) (*<VERB>be extracted from*); UNIQUE ALTER si ADD wellbore, well_test_recovery LAST (*<CHANGE>Allow a filter cake to be partially identified by the wellbore or source fluid. This replaces the use of activities as part of the SI rule.*); END_ENTITY; ALTER ENTITY wellbore; INVERSE ADD core : SET[0:?] OF core FOR wellbore (*<DESC>These are the cores which were extracted from this wellbore.*) (*<VERB>be the source of*); ADD drill_cuttings : SET[0:?] OF drill_cuttings_sample FOR wellbore (*<DESC>These are the cuttings which were extracted from this wellbore.*) (*<VERB>be the source of*); ADD filter_cake : SET[0:?] OF filter_cake FOR wellbore (*<DESC>These are the filter cakes which were extracted within the context of this wellbore.*) (*<VERB>be the source of*); END_ENTITY; (*<REMARK>-------- Surrogate materials -------------*) ALTER ENTITY well_test_recovery DROP SUBTYPE OF (technical_object) ADD SUBTYPE OF (fluid_sample) (*<CHANGE>This is documented to be fluid extracted from a fluid system.*); DROP identifier (*<CHANGE>Redundant to Material.identifier.*); ALTER fluid_phase AS described_phase (*<CHANGE>An attribute of this name is being inherited.*); INVERSE DROP pty_density_vapor (*<CHANGE>Redundant to Fluid_sample.pty_density_vapor.*); DROP pty_density_liquid (*<CHANGE>Redundant to Fluid_system.pty_density_liquid.*); WHERE ALTER mse : EXISTS(fluid_component) XOR (EXISTS(described_phase) XOR EXISTS(reservoir_fluid_system)) (*<DESC>Each WELL TEST RECOVERY must be the recovery of only one of RESERVOIR FLUID SYSTEM, FLUID COMPONENT or DESCRIBED PHASE.*) (*<CHANGE>An attribute name changed.*); END_ENTITY; ALTER ENTITY pty_density_vapor; DROP well_test_recovery (*<CHANGE>Redundant to Pty_density_vapor.fluid_sample.*); UNIQUE ALTER si DROP well_test_recovery; END_ENTITY; ALTER ENTITY pty_density_liquid; DROP well_test_recovery (*<CHANGE>Redundant to Pty_density_liquid.fluid_system.*); UNIQUE ALTER si DROP well_test_recovery; END_ENTITY; ALTER ENTITY drilling_kick_fluid DROP SUBTYPE OF (technical_object) ADD SUBTYPE OF (fluid_sample) (*<CHANGE>This is documented to be fluid extracted from a fluid system.*); ALTER fluid_phase AS described_phase (*<CHANGE>An attribute of this name is being inherited.*); INVERSE DROP pty_mass (*<CHANGE>Redundant to Bulk_material.pty_mass.*); ALTER pty_volume AS pty_bulk_volume_total (*<CHANGE>The name conflicts with an inherited name.*); END_ENTITY; ALTER ENTITY pty_mass; DROP drilling_kick_fluid (*<CHANGE>Redundant to Pty_mass.bulk_material.*); UNIQUE ALTER si DROP drilling_kick_fluid; END_ENTITY; (*<REMARK>-------- Surrogate associations -------------*) ALTER ENTITY business_associate_injury DROP SUBTYPE OF (technical_object) ADD SUBTYPE OF (transient_association); INVERSE DROP incident_of_noncompliance (*<CHANGE>Redundant to Transient_association.caused_by.*); END_ENTITY; ALTER ENTITY reserves_category_change DROP SUBTYPE OF (activity) ADD SUBTYPE OF (association) (*<CHANGE>Documents the change required to create a new reserves estimate.*); UNIQUE ALTER si DROP identifier, ref_existence_kind, kind, containing_activity; END_ENTITY; ALTER ENTITY property_damage DROP SUBTYPE OF (business_object) ADD SUBTYPE OF (transient_association); (*<CHANGE>Note that an Activity which causes property damage may have an involvement with the damaged object.*) DROP description (*<CHANGE>Redundant to Association.description.*); DROP incident_of_noncompliance (*<CHANGE>Redundant to Transient_association.caused_by*); WHERE ADD mse : exists ( damage_area ) xor ( exists ( equipment_item ) xor exists( facility ) ) (*<DESC>Each instance of PROPERTY DAMAGE may represent one and only one of a DAMAGE AREA or an EQUIPMENT ITEM or a FACILITY.*) (*<RULETYPE>MSE*); END_ENTITY; ALTER ENTITY wellbore_geologic_target DROP SUBTYPE OF (association) ADD SUBTYPE OF (transient_association); DROP geoscience_interpretation (*<CHANGE>Redundant to Transient_association.caused_by.*); UNIQUE ALTER si DROP geoscience_interpretation; END_ENTITY; (*<REMARK>---- Add relationship to pty_equipment_facility.------*) ALTER ENTITY ACTIVITY; INVERSE ADD pty_equipment_facility : SET[0:?] OF pty_equipment_facility FOR described_activity (*<VERB>have a property of*) (*<CHANGE>Replaces Reservoir_simulation_time_step.simulation_duration/start/end Well_test_open_period_recovery.time_to_surface Well_test_measurement.time_index Wellbore_trip.maximum_depth Wireline_logging_pass.maximum_recorded_temperature Wireline_logging_pass.nominal_logging_speed*); END_ENTITY; ALTER ENTITY pty_equipment_facility; ADD described_activity : OPTIONAL activity (*<VERB>be a property of*); END_ENTITY; ALTER ENTITY pty_string; UNIQUE ALTER si ADD described_activity AFTER other_material; END_ENTITY; ALTER ENTITY pty_line; UNIQUE ALTER si ADD described_activity AFTER other_material; END_ENTITY; ALTER ENTITY pty_point; UNIQUE ALTER si ADD described_activity AFTER other_material; END_ENTITY; ALTER ENTITY pty_quantity; UNIQUE ALTER si ADD described_activity AFTER other_material; END_ENTITY; ADD ENTITY pty_date SUBTYPE OF (pty_equipment_facility); (*<DESC>A property whose value is represented by a date. The meaning or role of the date value is given by the property kind.*) date_value : ndt_date_tod (*<DESC>A timestamp representation of a property value.*); UNIQUE si: end_time, ref_transient_period, start_time, typical_material, equipment_item, general_facility, classification_class, typical_facility, other_material, described_activity, ref_property_kind, activity; END_ENTITY; DROP ENTITY ref_activity_termination_reason (*<REMARK>Move to Activity_class.*); DROP ENTITY ref_logging_direction (*<REMARK>Move to Activity_class.*); (*<REMARK>==============================Dropped subtypes==========================*) DROP ENTITY reservoir_simulation_case (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY analytical_reservoir_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY choke_adjustment_event (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY compose_document_specification (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY contract_processing_operation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY coordinate_transformation_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY curve_fit_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY digitize_document (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY directional_survey_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY document_circulation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY equipment_calibration (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY equipment_repair_job (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY flow_system_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY geoscience_interpretation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY incident_investigation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY incident_of_noncompliance (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY lift_system_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY log_trace_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY materials_balance_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY materials_characterization (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY materials_processing (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY other_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY positioning_measurement_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY process_application_for_permit (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY production_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY render_document (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY reserves_evaluation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY reservoir_simulation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY reservoir_simulation_preprocessing (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY reservoir_simulation_postprocessing (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY reservoir_simulation_time_step (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY sample_acquisition (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY seismic_acquisition_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY seismic_processing_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY surface_geologic_survey (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY valve_close_event (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY valve_open_event (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_completion_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_pattern_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_test_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_test_measurement (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY wellbore_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY fluid_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY lithologic_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY rock_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY fluid_processing (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY rock_processing (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY decline_analysis (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY production_allocation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY production_reporting (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY fluid_sample_acquisition (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY rock_sample_acquisition (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY surface_geochemical_survey (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_test_shut_in_period (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_transient_pressure_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_performance_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_completion_workover (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_completion_stimulation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_potential_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_test_open_period (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY single_well_transient_pressure_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY multi_well_transient_pressure_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY install_plug (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY borehole_generation_run (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY cement_casing_string (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY drill_borehole (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY drilling_kick (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY drillstem_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY install_gravel_pack (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY other_wellbore_activity (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY production_logging (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY remove_plug (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY set_packer (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY shoot_perforation (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY squeeze_wellbore_interval (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY well_static_pressure_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY wellbore_directional_survey (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY wellbore_integrity_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY wellbore_trip (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY wireline_formation_test (*<CHANGE>Make this an instance of Activity_class.*); DROP ENTITY wireline_logging_pass (*<CHANGE>Make this an instance of Activity_class.*); (*<REMARK>============================Add new behavior at high level========================*) (*<REMARK>====== Alter business_associate involvement to apply to Object_of_interest.=======*) ALTER ENTITY business_associate_activity_role AS object_activity_involvement; (*<DESC>This association asserts that an object of interest had an involvement with an activity. The involvement may take many forms such as being the "contractor for" the activity, being the "subject of" the activity or being "used by" the activity.*) ALTER business_associate AS involved_object ALTER TYPE AS object_of_interest (*<DESC>This is the object which is involved with the activity.*) (*<VERB>be involved with*); ALTER activity AS involving_activity (*<DESC>This is the activity which involved the object.*) (*<VERB>have as the involver*); ALTER ref_business_associate_activity_role AS involvement_role (*<DESC>This is the role of involvement that the object has with the activity.*) (*<VERB>have as a role*); END_ENTITY; ALTER ENTITY ref_business_associate_activity_role AS ref_activity_involvement_role; (*<DESC>These are the roles of involvement that an object of interest may have with an activity.*) INVERSE ALTER business_associate_activity_role AS object_involvement (*<DESC>These are the object involvements which have this role.*) (*<VERB>be the role for*); ADD activity_involvement : SET[0:?] OF activity_activity_involvement FOR involvement_role (*<DESC>These are the activity involvements which have this role.*) (*<VERB>be the role for*); ADD common_involvement : SET[0:?] OF common_activity_involvement FOR involvement_role (*<DESC>These are the normal activity involvements which have this role.*) (*<VERB>be the role for*); END_ENTITY; ALTER ENTITY activity; INVERSE ALTER business_associate_activity_role AS involved_object (*<DESC>These are the involvements which earth features have with the activity.*) (*<VERB>be involved with*) (*<CHANGE>Replaces --pfnu Production_activity.product_flow_network_unit with involvement=OBJECT OF, Reserves_evaluation.product_flow_network_unit with involvement=EVALUATED BY, --technical_object compose_document_specification.symbol_library with involvement=USED BY, coordinate_transformation_activity.applied_coordinate_transformation with involvement=USED BY, production_reporting.pfnu_period_report with involvement=RESULT OF, --business_object incident_of_noncompliance.regulation with involvement=DEFINES, --earth_feature Analytical_reservoir_analysis.rock_fluid_feature with involvement=SUBJECT OF, Incident_of_noncompliance.damage_area with involvement=RESULT OF, Materials_balance_analysis.rock_fluid_feature with involvement=CHARACTERIZED BY, Reservoir_simulation.rock_fluid_feature with involvement=CHARACTERIZED BY, Seismic_acquisition_activity.acquire_for with involvement=RESULT OF, Seismic_processing_activity.binset with involvement=RESULT OF, --document_specification Compose_document_specification.document_specification with involvement=RESULT OF, Curve_fit_activity.diagram_specification with involvement=INPUT TO, Incident_investigation.resultant_report with involvement=RESULT OF, Incident_of_noncompliance.incident_report with involvement=REFERENCE TO, Process_application_for_permit.application_for_permit with involvement=PROCESSED BY, Process_application_for_permit.application_for_permit with involvement=RESULT OF, Render_document.document_specification with involvement=RENDERED BY, Wellbore_trip.well_log with involvement=REFERENCE TO, --material Document.source_activity with involvement=INPUT TO, Electronic_document.digitize_document with involvement=RESULT OF, Document.document_circulation with involvement=RELOCATED BY, Equipment_item.calibrated_by_activity with involvement=CALIBRATED BY, Equipment_item.equipment_repair_job with involvement=REPAIRED BY, Fluid_analysis.fluid_system with involvement=ANALYZED BY, Lithologic_analysis.rock_material with involvement=CHARACTERIZED BY, Rock_analysis.rock_material with involvement=ANALYZED BY, Materials_processing.processed_material with involvement=ACTED UPON, Materials_processing.produced_filter_cake with involvement=RESULT OF, Materials_processing.produced_fluid_sample with involvement=RESULT OF, Materials_processing.produced_rock_sample with involvement=RESULT OF, Render_document.document with involvement=RESULT OF, Sample_acquisition.source_material with involvement=ACTED UPON, Sample_acquisition.produced_filter_cake with involvement=RESULT OF, Sample_acquisition.produced_filter_cake with involvement=RESULT OF, Sample_acquisition.produced_rock_sample with involvement=RESULT OF, Borehole_generation_run.well_operation_fluid with involvement=UTILIZED BY, Borehole_generation_run.core with involvement=RESULT OF, Borehole_generation_run.drill_cuttings_sample with involvement=RESULT OF, Wellbore_integrity_test.well_operation_fluid with involvement=INSTALLED BY, Wireline_logging_pass.core with involvement=RESULT OF, --facility Activity.facility with involvement=USED BY, Lift_system_analysis.fluid_lift_system with involvement=EVALUATED BY, Materials_characterization.site with involvement=SITE OF, Materials_processing.located_by_facility with involvement=SITE OF, Positioning_measurement_activity.observation_definition with involvement=PERFORMED BY, Sample_acquisition.site with involvement=SITE OF, Well_completion_activity.site with involvement=SITE OF, Multi_well_transient_pressure_test.observation_well with involvement=OBSERVED BY, Well_pattern_analysis.well_pattern with involvement=EVALUATED BY, Well_test_measurement.temporary_completion with involvement=SITE OF, Well_test_measurement.wellbore_measurement_point with involvement=SITE OF, Well_test_measurement.well_completion with involvement=SITE OF, Cement_casing_string.casing_string with involvement=INSTALLED BY, Drill_borehole.single_diameter_borehole with involvement=RESULT OF, Drillstem_test.temporary_completion with involvement=OBSERVED BY, Install_gravel_pack.gravel_pack with involvement=INSTALLED BY, Shoot_perforation.perforation_set with involvement=RESULT OF, Wireline_formation_test.wellbore_measurement_point with involvement=EVALUATED BY. *); END_ENTITY; ALTER ENTITY object_of_interest; INVERSE ADD involving_activity : SET[0:?] OF object_activity_involvement FOR involved_object (*<DESC>This are the activity involvements which affect the object.*) (*<VERB>have involvements with*); END_ENTITY; ALTER ENTITY business_associate; INVERSE DROP business_associate_activity_role (*<CHANGE>Redundant to Object_of_interest.involving_activity.*); END_ENTITY; (*<REMARK>======== Add "expected" involvement ==============*) ADD ENTITY common_activity_involvement SUBTYPE OF (association_reference); (*<DESC>This asserts the involvements which members of an activity class may be expected to have with instances of an entity and/or members of a classifiable object.*) (*<POPULATION>OPEN*) involving_class : activity_class (*<DESC>This is the activity class whose members may involve a member of a classifiable object.*) (*<VERB>normally be involved with*); involved_class : OPTIONAL classification_class (*<DESC>This is the object class whose members may be involved with a member of the involving class. If this is specified with involved entity then the involvement is constrained to instances of the entity which are members of the involved class.*) (*<VERB>normally involve*); involved_entity : OPTIONAL ref_entity (*<DESC>This is the entity whose members may be involved with a member of the involving class.*) (*<VERB>normally involve*); involvement_role : ref_activity_involvement_role (*<DESC>This is the role which the involved entity and/or class may have with the involving class.*) (*<VERB>have involvement role of*); UNIQUE si : involving_class, involved_class, involved_entity, involvement_role; WHERE val : EXISTS (involved_class) OR EXISTS (involved_entity) (*<DESC>For each instance of activity normal involvement, one or both of involved class or involved entity must be specified.*); END_ENTITY; ALTER ENTITY activity_class; INVERSE ADD involved_class : SET[0:?] OF common_activity_involvement for involving_class (*<DESC>These are the normal involvements which members of the involved class may have with members if this activity class.*) (*<VERB>be normally involved with*); END_ENTITY; ALTER ENTITY classification_class; INVERSE ADD common_activity_involvement : SET[0:?] OF common_activity_involvement for involved_class (*<DESC>These are the normal involvements which a member of this class may have with members of activity classes.*) (*<VERB>have normal involvement with*); END_ENTITY; (*<REMARK>======== Add "expected" properties ==============*) ADD ENTITY common_activity_property SUBTYPE OF (technical_reference); (*<DESC>An association which declares a type of property which is commonly associated with members of an activity class.*) (*<POPULATION>OPEN*) activity_class : activity_class (*<DESC>The class whose members may commonly have the property.*) (*<VERB>be associated with*); property_kind : ref_property_kind (*<DESC>The type of property which is commonly associated with the class.*) (*<VERB>commonly have*); UNIQUE si : activity_class, property_kind; END_ENTITY; ALTER ENTITY activity_class (*<REMARK> Added in another change.*); INVERSE ADD common_properties : SET[0:?] OF common_activity_property FOR activity_class (*<DESC>The set of property kinds which objects conforming to this class can commonly be expected to have.*) (*<VERB>commonly have*); END_ENTITY; ALTER ENTITY ref_property_kind; INVERSE ADD common_activity_property : SET[0:?] OF common_activity_property FOR property_kind (*<DESC>The set of associations which assert that this kind of property is commonly associated with members of a class.*) (*<VERB>be common to*); END_ENTITY; (*<REMARK>====== rename business_associate with facility association to be consistent with the activity involvements =======*) ALTER ENTITY business_associate_facility_association AS business_associate_facility_involvement; (*<DESC>This association asserts that a business associate had an involvement with a facility over a period of time. Examples are: a company is the operator, a person is responsible for maintenance, a company is the construction or drilling contractor, etc. These are functional roles in general, not job titles.*) ALTER ref_business_associate_facility_role AS involvement_role; END_ENTITY; ALTER ENTITY ref_business_associate_facility_role; INVERSE ALTER business_associate_facility_association AS business_associate_facility_involvement; END_ENTITY; ALTER ENTITY facility; INVERSE ALTER business_associate_facility_association AS involved_business_associate; END_ENTITY; ALTER ENTITY business_associate; INVERSE ALTER business_associate_facility_association AS involving_facility; END_ENTITY; (*<REMARK>====== Add activity involvement. =======*) ALTER ENTITY activity; INVERSE ADD involved_activity : SET[0:?] OF activity_activity_involvement FOR involving_activity (*<DESC>These are the involvements which activities have with this activity.*) (*<VERB>be involved with*); ADD involving_activity : SET[0:?] OF activity_activity_involvement FOR involved_activity (*<DESC>This are the activity involvements which affect this activity.*) (*<VERB>have involvements with*); END_ENTITY; ADD ENTITY activity_activity_involvement SUBTYPE OF (transient_association); (*<DESC>This association asserts that an activity had an involvement with another activity. The involvement may take many forms such as being the "objective" of the activity.*) (*<CHANGE>Replaces incident_investigation.noncompliant_incident with involvement=OBJECTIVE.*) involving_activity : activity (*<DESC>This is the activity which involved the involved activity.*) (*<VERB>have as the involver*); involved_activity : activity (*<DESC>This is the activity which is involved with the involving activity.*) (*<VERB>be involved with*); involvement_role : ref_activity_involvement_role (*<DESC>This is the role of involvement that the involved activity has with the involving activity.*) (*<VERB>have*); UNIQUE si : involved_activity, involving_activity, involvement_role, start_time, end_time; END_ENTITY; (*<REMARK>======================Drop redundant behavior============================*) ALTER ENTITY pfnu_period_report; DROP production_reporting (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY pfnu_period_operation_report; UNIQUE ALTER si DROP production_reporting; END_ENTITY; ALTER ENTITY pfnu_period_performance_report; UNIQUE ALTER si DROP production_reporting; END_ENTITY; ALTER ENTITY regulation; INVERSE DROP incident_of_noncompliance (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY noncompliant_incident_regulation (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY applied_coordinate_transformation; INVERSE DROP coordinate_transformation_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY symbol_library; INVERSE DROP compose_document_specification (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY symbol_library_usage (*<REMARK>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY activity; INVERSE DROP utilize_material (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY material; INVERSE DROP used_by_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY activity_material_utilization (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY activity; INVERSE DROP facility (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY facility; INVERSE DROP activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY activity_facility_utilization (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY rock_fluid_feature; INVERSE DROP analytical_reservoir_analysis (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY analytical_analysis_subject (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY document_specification; DROP compose_document_specification (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY diagram_specification; INVERSE DROP curve_fit_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY document; INVERSE DROP source_activity (*<CHANGE>Replaced by Object_activity_involvement and Locatable_object.activity.*); DROP document_circulation (*<CHANGE>Replaced by Object_activity_involvement and Locatable_object.activity.*); END_ENTITY; ALTER ENTITY electronic_document; DROP digitize_document (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY equipment_item; INVERSE DROP equipment_repair_job (*<CHANGE>Replaced by Object_activity_involvement.*); DROP calibrated_by_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY equipment_calibration_inclusion (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); DROP ENTITY noncompliant_incident_examination (*<CHANGE>NEW INTERSECTION. Replaced by Activity_activity_involvement.*); ALTER ENTITY incident_report; INVERSE DROP incident_investigation (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY incident_report_production (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY incident_report; INVERSE DROP incident_of_noncompliance (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY noncompliant_report_association (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY damage_area; DROP incident_of_noncompliance (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY fluid_lift_system; INVERSE DROP lift_system_analysis (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY fluid_lift_system_evaluation (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY rock_fluid_feature; INVERSE DROP materials_balance_analysis (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY materials_analysis_feature (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY facility; INVERSE DROP materials_characterization (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY fluid_system; INVERSE DROP fluid_analysis (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY fluid_system_analysis (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY rock_material; INVERSE DROP lithologic_analysis (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY lithologic_analysis_material (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY rock_material; INVERSE DROP rock_analysis (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY rock_analysis_material (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY facility; INVERSE DROP site_of_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY bulk_material; INVERSE DROP process_history (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY materials_processing_utilization (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY filter_cake; DROP source_activity (*<CHANGE>Moved from Material_sample. Replaced by Object_activity_involvement.*); UNIQUE ALTER si DROP source_activity; WHERE DROP ose; END_ENTITY; ALTER ENTITY fluid_sample; DROP source_activity (*<CHANGE>Moved from Material_sample. Replaced by Object_activity_involvement.*); UNIQUE ALTER si DROP source_activity; WHERE DROP ose; END_ENTITY; ALTER ENTITY rock_sample; DROP source_activity (*<CHANGE>Moved from Material_sample. Replaced by Object_activity_involvement.*); WHERE DROP ose; END_ENTITY; (*<REMARK>subtypes of rock_sample*) ALTER ENTITY paleontology_slide; UNIQUE ALTER si DROP source_activity; END_ENTITY; ALTER ENTITY core; UNIQUE ALTER si DROP source_activity; END_ENTITY; ALTER ENTITY drill_cuttings_sample; UNIQUE ALTER si DROP source_activity; END_ENTITY; ALTER ENTITY outcrop_sample; UNIQUE ALTER si DROP source_activity; END_ENTITY; ALTER ENTITY rock_powder_sample; UNIQUE ALTER si DROP source_activity; END_ENTITY; ALTER ENTITY rock_thin_section; UNIQUE ALTER si DROP source_activity; END_ENTITY; ALTER ENTITY application_for_permit; INVERSE DROP process_application_for_permit (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY permit_specification; INVERSE DROP process_application_for_permit (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY product_flow_network_unit; INVERSE DROP production_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY pfnu_activity_association (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY product_flow_network_unit; INVERSE DROP reserves_evaluation (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY pfnu_reserves_evaluation (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY document_specification; INVERSE DROP render_document (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY document; DROP render_document (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY rock_fluid_feature; INVERSE DROP reservoir_simulation (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY reservoir_simulation_feature (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY facility; INVERSE DROP sample_acquisition (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY bulk_material; INVERSE DROP sampled_by_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY sample_acquisition_source (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY filter_cake; DROP produced_by_activity (*<CHANGE>Replaced by Object_activity_involvement.*); UNIQUE ALTER si DROP produced_by_activity; END_ENTITY; ALTER ENTITY fluid_sample; DROP produced_by_activity (*<CHANGE>Replaced by Object_activity_involvement.*); UNIQUE ALTER si DROP produced_by_activity; END_ENTITY; ALTER ENTITY rock_sample; DROP produced_by_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; (*<REMARK>subtypes of rock_sample*) ALTER ENTITY paleontology_slide; UNIQUE ALTER si DROP produced_by_activity; END_ENTITY; ALTER ENTITY core; UNIQUE ALTER si DROP produced_by_activity; END_ENTITY; ALTER ENTITY drill_cuttings_sample; UNIQUE ALTER si DROP produced_by_activity; END_ENTITY; ALTER ENTITY outcrop_sample; UNIQUE ALTER si DROP produced_by_activity; END_ENTITY; ALTER ENTITY rock_powder_sample; UNIQUE ALTER si DROP produced_by_activity; END_ENTITY; ALTER ENTITY rock_thin_section; UNIQUE ALTER si DROP produced_by_activity; END_ENTITY; ALTER ENTITY seismic_geometry_set; INVERSE DROP acquired_by (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY seismic_acquisition_information (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY binset; DROP seismic_processing_activity (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY well_completion; INVERSE DROP well_completion_activity (*<CHANGE>Replaced by Object_activity_involvement and Locatable_object.activity.*); END_ENTITY; ALTER ENTITY well_completion; INVERSE DROP multi_well_transient_pressure_test (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY multi_well_pressure_test_observer (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY well_pattern; INVERSE DROP well_pattern_analysis (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY well_pattern_analysis_target (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY temporary_completion; INVERSE DROP well_test_measurement (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY wellbore_point; INVERSE DROP well_test_measurement (*<CHANGE>Replaced by Object_activity_involvement.*) (*<CHANGE>Moved here from Wellbore_measurement_point.*); DROP wireline_formation_test (*<CHANGE>Replaced by Object_activity_involvement.*) (*<CHANGE>Moved here from Wellbore_measurement_point.*); END_ENTITY; ALTER ENTITY well_completion; INVERSE DROP well_test_measurement (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY well_operation_fluid; INVERSE DROP borehole_generation_run (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY core; DROP borehole_generation_run (*<CHANGE>Replaced by Object_activity_involvement.*); UNIQUE ALTER si DROP borehole_generation_run; END_ENTITY; ALTER ENTITY drill_cuttings_sample; DROP borehole_generation_run (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY casing_string; INVERSE DROP cement_casing_string (*<CHANGE>Replaced by Object_activity_involvement and Locatable_object.activity.*); END_ENTITY; ALTER ENTITY single_diameter_borehole_segment; INVERSE DROP drill_borehole (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY temporary_completion; INVERSE DROP drillstem_test (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY gravel_pack; DROP install_gravel_pack (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY perforation_set; DROP shoot_perforation (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; ALTER ENTITY well_operation_fluid; INVERSE DROP wellbore_integrity_test (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY wellbore_integrity_test_fluid (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY well_log; INVERSE DROP wellbore_trip (*<CHANGE>Replaced by Object_activity_involvement.*); END_ENTITY; DROP ENTITY wellbore_trip_record (*<CHANGE>NEW INTERSECTION. Replaced by Object_activity_involvement.*); ALTER ENTITY core; DROP wireline_logging_pass (*<CHANGE>Replaced by Object_activity_involvement.*); UNIQUE ALTER si DROP wireline_logging_pass; END_ENTITY; (*<REMARK> ==== Moved to material. ========*) ALTER ENTITY well_test_open_period_recovery; DROP well_test_open_period (*<CHANGE>Redundant to Object_activity_involvement.*); UNIQUE ALTER si DROP well_test_open_period; END_ENTITY; ALTER ENTITY drillstem_test_recovery; DROP drillstem_test (*<CHANGE>Redundant to Object_activity_involvement.*); UNIQUE ALTER si DROP drillstem_test; END_ENTITY; ALTER ENTITY wireline_formation_test_recovery; DROP wireline_formation_test (*<CHANGE>Redundant to Object_activity_involvement.*); UNIQUE ALTER si DROP wireline_formation_test; END_ENTITY; ALTER ENTITY drilling_kick_fluid; INVERSE DROP drilling_kick (*<CHANGE>Redundant to Object_activity_involvement. This is a LIST OF UNIQUE on the other end but there is no documentation as to the meaning of the order. A weak variation of that knowledge can be captured in "identifier".*); UNIQUE ALTER si DROP drilling_kick; END_ENTITY; END_CHANGE;