POSC Specifications: Epicentre Version 3.0 | Logical Data Model |
Eliminate the distinction between classification system and naming system. Add a parent/child relationship to the naming system in order to support the semantics of ref_classification_system. Add a many-to-one relationship to a new entity REF_ENTITY to allow an assertion that the identifiers in a naming system should be constrained to use with one entity. Add naming system to most aliasable entities (including ref_code). Adding naming system to reference entities will allow standard instance identifiers to be substituted by an alias identifier. The standard meaning is still provided by the standard instance but the 'name' can be interchanged.
CHANGE ERP_naming_system (*<CHANGE>Version 2 - Add SI to ref_entity.*) (*<DESC>Eliminate the distinction between classification system and naming system. Add a parent/child relationship to the naming system in order to support the semantics of ref_classification_system. Add a many-to-one relationship to a new entity REF_ENTITY to allow an assertion that the identifiers in a naming system should be constrained to use with one entity. Add naming system to most aliasable entities (including ref_code). Adding naming system to reference entities will allow standard instance identifiers to be substituted by an alias identifier. The standard meaning is still provided by the standard instance but the 'name' can be interchanged.*) ALTER ENTITY ref_naming_system AS naming_system DROP SUBTYPE OF (ref_code) ADD SUBTYPE OF (technical_reference); DROP description (*<CHANGE>Redundant to Technical_object.description*); DROP kind (*<CHANGE>Redundant to Technical_reference.identifier*); ADD parent : OPTIONAL naming_system (*<DESC>The parent of naming system. For example, if the naming system was 'lahee class', then the parent might be 'well classification'.*) (*<VERB>be a child of*); ADD interoperability_level : OPTIONAL ndt_interoperability_level (*<DESC>Defines the level of interoperability for this naming system.*); ADD entity_constraint : OPTIONAL ref_entity (*<DESC>Asserts that the identifiers in a naming system should only be used in the context of a single entity. For example, a naming system such as "API" should only be used for "WELL" identifiers.*) (*<VERB>be constrained to*); INVERSE ADD child : SET[0:?] OF naming_system FOR parent (*<DESC>The children systems of this naming system.*) (*<VERB>be the parent of*); ADD activity : SET[0:?] OF activity FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD business_associate : SET[0:?] OF business_associate FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD document_specification : SET[0:?] OF document_specification FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*) (*<CHANGE>Make the existing inverse relationship "non-void".*); ADD earth_feature : SET[0:?] OF earth_feature FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD facility : SET[0:?] OF facility FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD geologic_process : SET[0:?] OF geologic_process FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*) (*<CHANGE>Make the inverse relationship "non-void".*); ADD material : SET[0:?] OF material FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD object_alias : SET[0:?] OF object_alias FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD seismic_data_set : SET[0:?] OF seismic_data_set FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD aliasable_technical_reference : SET[0:?] OF aliasable_technical_reference FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD ref_aliasable_data : SET[0:?] OF ref_aliasable_data FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD temporal_object : SET[0:?] OF temporal_object FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); ADD well_log_trace : SET[0:?] OF well_log_trace FOR naming_system (*<DESC>These are instances for which this naming system provides context for an identifier.*) (*<VERB>be referenced by*); UNIQUE ALTER si DROP kind ADD identifier FIRST; END_ENTITY; ADD TYPE ndt_interoperability_level = ENUMERATION OF ( personal (*<DESC>The lowest level of interoperability.*), sitegroup (*<DESC>Higher than 'personal'.*), site (*<DESC>Higher than 'sitegroup'. For example, a computation site or local specifications for a field.*), corporategroup (*<DESC>Higher than 'site'. For example, a corporate region or corporate specifications for a field.*), corporate (*<DESC>Higher than 'corporategroup'.*), regionalgroup (*<DESC>Higher than 'corporate'. For example, defined by a regional consortium.*), geopolitical (*<DESC>Higher than 'regionalgroup'. For example, defined by API (e.g., well names), DTI, MMS, NPD, etc.*), globalgroup (*<DESC>Higher than 'geopolitical'. For example, defined by a global consortium.*), global (*<DESC>Higher than 'globalgroup'. The highest level of interoperability. For example, defined by POSC or API (e.g., tubulars).*) ); (*<DESC>Lists the level of interoperability of an instance.*) END_TYPE; DROP ENTITY classification_system (*<CHANGE>Replaced by Naming_system.*); DROP ENTITY ref_classification_system (*<CHANGE>Replaced by Naming_system.parent*); ADD ENTITY ref_entity SUBTYPE OF (ref_code); (*<DESC>The name of an entity in the Epicentre schema.*) (*<POPULATION>OPEN*) INVERSE constrained_system : SET[0:?] OF naming_system FOR entity_constraint (*<DESC>The naming systems whose identifiers are constrained to be used with respect to this entity.*) (*<VERB>be a constraint for*); UNIQUE si: identifier; END_ENTITY; ALTER ENTITY earth_feature; ADD naming_system : OPTIONAL naming_system (*<DESC>The naming system in which the identifier is defined and unique.*) (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY facility; ADD naming_system : naming_system (*<DESC>The naming system in which the identifier is specified and determined to be unique.*) (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY material; ADD naming_system : OPTIONAL naming_system (*<DESC>The naming system in which the identifier is specified and determined to be unique.*) (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY aliasable_technical_reference; ADD naming_system : OPTIONAL naming_system (*<DESC>The naming system in which the identifier is specified and determined to be unique.*) (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY ref_aliasable_data; ADD naming_system : OPTIONAL naming_system (*<DESC>The naming system in which the identifier is specified and determined to be unique.*) (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY document_specification; ADD naming_system : OPTIONAL naming_system (*<DESC>The naming system in which the identifier is specified and determined to be unique.*) (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY activity; ADD naming_system : OPTIONAL naming_system (*<DESC>The naming system in which the identifier is specified and determined to be unique.*) (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY geologic_process; ADD naming_system : OPTIONAL naming_system (*<DESC>The naming system in which the identifier is specified and determined to be unique.*) (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY business_associate; ALTER ref_naming_system AS naming_system (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY object_alias; ALTER ref_naming_system AS naming_system (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY seismic_data_set; ALTER ref_naming_system AS naming_system (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY temporal_object; ALTER ref_naming_system AS naming_system (*<VERB>have name specified by*); END_ENTITY; ALTER ENTITY well_log_trace; ALTER ref_naming_system AS naming_system (*<VERB>have name specified by*); END_ENTITY; END_CHANGE;