POSC Specifications: Epicentre Version 3.0 | Logical Data Model |
This proposal adds the capability to describe the content and structure of document specifications. This provides a description of the structure of a document based upon a subset of features in XML Schema.
CHANGE ESM2_structured_documents (*<REMARK> CHANGE ESM2_structured_documents *) (*<DESC>This proposal adds the capability to describe the content and structure of document specifications. This provides a description of the structure of a document based upon a subset of features in XML Schema. *) -- apply after ESM2_earth_feature and ESM2_license_and_lease ALTER ENTITY document_specification; DROP information_content; INVERSE DROP be_positioned_by; DROP placement_of; DROP graphical_composition; ADD content : SET [0:?] of document_specification_part FOR document_specification (*<desc>These define the content of the document specification. These parts may be defined in order, and each part may be assigned a specific meaning within the document specification, such as a title, a reference to another document, the use of a data value within a document, or a graphic.*) (*<verb>be composed of*); ADD referenced_by : SET [0:?] of document_spec_reference FOR document_referenced (*<desc>These are the references made to this document specification by other document specifications. These references may include citations or references to specific document components.*) (*<verb>be referenced by*); END_ENTITY; ALTER ENTITY document_specification_class; ADD document_schema : OPTIONAL document_schema (*<desc>This is the type definition for this class of document specification. This definition defines the structure of a document specification, including defining the constituent parts and describing their order, optionality and cardinality.*) (*<verb>have a structure defined by*); END_ENTITY; ADD ENTITY document_specification_part (*<desc>This is a part of a document specification. This part may have a specified role in the document specification and may be in a specific sequential location.*) ABSTRACT SUPERTYPE OF (ONEOF (document_spec_placement, document_content)) SUBTYPE OF (technical_object); document_specification : document_specification (*<desc>This is the document specification for which this part is a component.*) (*<verb>be a part of*); document_schema_part : OPTIONAL document_schema_part (*<desc>This is the role or meaning of this part within the document specification. This definition explains how this part of the document fits into the overall structure of the document.*) (*<verb>is defined by*); sequence : OPTIONAL ndt_pint1 (*<desc>This is the sequential position of this part within the document.*); UNIQUE si: document_specification, document_schema_part, sequence; END_ENTITY; ALTER ENTITY document_spec_placement AS document_spec_reference (*<desc>The specification of reference from one document specification to another document specification, such as with a citation.*) DROP SUBTYPE OF (association); DROP axis_rotation_angle; DROP placement_of; DROP x_offset; DROP x_scale; DROP y_offset; DROP y_scale; ALTER place_within AS document_referenced (*<desc>This defines the document that is being referenced by the document that is being described.*) (*<verb>describe a reference to*); ADD reference_content : OPTIONAL document_content (*<desc>This is the specific part of the document referenced that is being used in this reference.*) (*<verb>describe a reference to*); ADD citation : OPTIONAL ndt_comment (*<desc>This is a textual description of the part of the reference document that is being used in this reference.*); ADD role : OPTIONAL ref_document_spec_reference (*<desc>This defines the role that referenced documents has with respect to the document whose content is being described. Example roles include replacement (where the current document is replaced by the referenced document), amendment (where the current document replaces specific portions of the referenced document), and reference (where the referenced document is cited in the current document).*) (*<verb>is defined as*); UNIQUE DROP si; WHERE ADD sri1: reference_content.document_specification:=:document_referenced (*<desc>The document part designated as being the content of the reference must be part of the referenced document.*) (*<ruletype>sri*); END_ENTITY; ADD ENTITY ref_document_spec_reference (*<desc> This defines the roles that references between documents may have. Example roles include replacement (where the current document is replaced by the referenced document), amendment (where the current document replaces specific portions of the referenced document), reference (where the referenced document is cited in the current document), and extension (where the current document provides additional information to the referenced document.*) (*<population>open*) SUBTYPE OF (ref_code); INVERSE document_spec_reference : SET[0:?] OF document_spec_reference FOR role (*<DESC>These are the instances which utilize the semantics of this instance.*) (*<VERB>be referenced by*); UNIQUE si: identifier; END_ENTITY; ADD ENTITY document_content (*<desc>This describes a constituent part of a document, providing an element of the content of the document specification. Each part describes either a text, graphic or information element. The meaning of each part may be defined by specifying the document_schema_part it represents within the document specification. *) ABSTRACT SUPERTYPE OF (ONEOF (document_textual_content, document_graphical_content, document_information_content)) SUBTYPE OF (document_specification_part); INVERSE document_spec_reference : SET [0:?] OF document_spec_reference FOR reference_content (*<desc>When this part of the document specification is referenced in this or another document, these are the referencing documents.*) (*<verb>be referenced by*); document_schema_entity_content : SET [0:?] OF document_schema_entity_content FOR document_content (*<desc>This designates that this part of a document specification is included in the content of these document schema elements. As part of the content of a document schema element, this part of the document specification is included as part of a document schema.*) (*<verb>be used as*); END_ENTITY; ADD ENTITY document_textual_content (*<desc>This defines a body of text that is part of a document specification.*) SUBTYPE OF (document_content); text : ndt_text (*<desc>This is text that is part of a document specification. This text may include markup, such as XML tags, as appropriate.*); END_ENTITY; ADD ENTITY document_graphical_content (*<desc> This describes how and when to place an object in a document and how to annotate it when depicted. The object being described should be depicted when the display scale is between the minimum and maximum scale defined for it here. The graphical element describes the manner in which the object should be represented at this scale.*) SUBTYPE OF (document_content); graphical_representation: OPTIONAL graphical_element (*<desc> This is the graphical representation which is used to depict the object at this depiction scale. This includes text (straight, inclined, curved) and graphics.*) (*<verb>use*); minimum_scale : OPTIONAL ndt_any_quantity (*<desc> The scale below which this depiction should not be used. If this value is zero or not defined, this depiction should be used for all scales less than the maximum scale.*); maximum_scale : OPTIONAL ndt_any_quantity (*<desc> The scale above which this depiction should not be used. If this value is zero or not defined, this depiction should be used for all scales greater than the minimum scale.*); annotation : OPTIONAL ndt_text_132 (*<desc>This is the text that annotates this graphical element.*); axis_rotation_angle : OPTIONAL ndt_plane_angle (*<desc>This is the angle of the annotation.*); x_offset : OPTIONAL ndt_any_quantity (*<desc>This is the location of the graphical element within the document specification, measured from the left edge.*); x_scale : OPTIONAL ndt_any_quantity (*<desc>This is the scale of the graphical element in the lateral direction.*); y_offset : OPTIONAL ndt_any_quantity (*<desc>This is the location of the graphical element within the document specification, measured from the bottom edge.*); y_scale : OPTIONAL ndt_any_quantity (*<desc>This is the scale of the graphical element in the vertical direction.*); END_ENTITY; ALTER ENTITY graphical_element (*<desc>A display primitive used to create graphical representations.*); DROP document_specification; INVERSE ADD document_graphical_content : SET[0:?] OF document_graphical_content FOR graphical_representation (*<desc>These are the parts of document specifications that use this graphical element.*) (*<verb>be used in*); END_ENTITY; ALTER ENTITY line_element; UNIQUE ALTER si DROP document_specification; END_ENTITY; ALTER ENTITY noncurved_text_element; UNIQUE ALTER si DROP document_specification; END_ENTITY; ALTER ENTITY symbol; UNIQUE ALTER si DROP document_specification; END_ENTITY; ALTER ENTITY composite_graphical_element; UNIQUE ALTER si DROP document_specification; END_ENTITY; ALTER ENTITY dynamic_graphical_element; UNIQUE ALTER si DROP document_specification; END_ENTITY; ALTER ENTITY ring_element; UNIQUE ALTER si DROP document_specification; END_ENTITY; ALTER ENTITY patterned_area; UNIQUE ALTER si DROP document_specification; END_ENTITY; ALTER ENTITY raster_image; UNIQUE ALTER si DROP document_specification; END_ENTITY; ADD ENTITY document_information_content (*<desc>This describes the inclusion of an item of data (stored in the database) in a document. The meaning or role of this data within the document is defined by the selected part of the document schema, if defined.*) SUBTYPE OF (document_content); e_and_p_data : OPTIONAL e_and_p_data (*<desc>This specifies the data instance that is being included.*) (*<verb>include*); END_ENTITY; ALTER ENTITY e_and_p_data; INVERSE ADD document_information_content : SET [0:?] OF document_information_content FOR e_and_p_data (*<desc>These are the document specification parts that include this data value and define its meaning within a document specification. Each use may define a different meaning, and many uses are allowed.*) (*<verb>be included in*); END_ENTITY; ADD ENTITY document_schema (*<desc>This is a simplified description of the structure of a document type. This includes what components are found in a type of document, and optionally their ordering and inter-relationships. This description is intended to describe the meaning (including intent, role, etc.) for each part of a document. This description does not contain all of the detail provided in an XML Schema, which, when provided, is the definitive specification of the document schema.*) SUBTYPE OF (aliasable_technical_reference); xmlschema_ref : OPTIONAL ndt_text_132 (*<desc> This is the URI (uniform resource identifier) pointing to the XML Schema that is the definitive specification for this document schema.*); INVERSE document_specification_class : SET [0:?] OF document_specification_class FOR document_schema (*<desc>This defines the instances of document specification class that have a structure based upon this document schema.*) (*<verb>define the structure for*); document_schema_part : SET [0:?] OF document_schema_part FOR document_schema (*<desc>These are the components of the document schema.*) (*<verb>be composed of*); UNIQUE si: identifier; END_ENTITY; ADD ENTITY document_schema_part (*<desc>This is a component in a document schema.*) ABSTRACT SUPERTYPE OF (ONEOF (document_schema_attribute, document_schema_comment, document_schema_element, document_schema_entity)) SUBTYPE OF (aliasable_technical_reference); document_schema : document_schema (*<desc>This is the document schema that this component is a part of*) (*<verb>be a part of*); component_sequence : OPTIONAL ndt_pint1 (*<desc>This is the sequence number of this part within the document schema. This defines the order of this part within the document. A NULL or a value of zero ('0') states that the part has no order. Multiple parts with the same sequence value means that these parts may appear in any order relative to each other but they appear at the same place within the document.*); INVERSE document_specification_part : SET[0:?] OF document_specification_part FOR document_schema_part (*<desc>These are the parts of documents which are of the type defined by this document schema part.*) (*<verb>be used to define*); UNIQUE si: document_schema, identifier; END_ENTITY; ADD ENTITY document_schema_element (*<desc>This is a component of a document schema that represents a distinct, structurally meaningful part of a document specification, such as a title, an acknowledgement, a chapter, a footnote, etc. Text blocks are not usually described as document schema elements unless they are part of the structure of document, such as an introduction, body or conclusion, etc.*) SUBTYPE OF (document_schema_part); kind : OPTIONAL ndt_text_132 (*<desc>This specifies the type of the element as defined in the XML Schema, describing either the simple or complex type to which this element is constrained.*); optionality : OPTIONAL ndt_boolean (*<desc>This defines the optionality of this element within the document type definition. If FALSE, this element must be included in a document specification conforming to this document schema. If TRUE or NULL, this element may be omitted.*); cardinality : OPTIONAL ndt_pint1 (*<desc>This specifies the maximum number of elements of this type that may be included in a document specification using this document type definition. If NULL, the number of elements is unrestricted.*); compositor : OPTIONAL ndt_compositor (*<desc> This specifies the behavior of the part elements for this element. This defines if a sequence of the part elements is permitted or required, if a choice is permitted or required, if choices are repeated, and if elements are required.*); whole_element : OPTIONAL document_schema_element (*<desc>This defines the element that this element is a part of, used when the related element is an element group.*) (*<verb>be a part of*); INVERSE document_schema_attribute : SET[0:?] OF document_schema_attribute FOR document_schema_element (*<desc>These are the attributes of this element in a document type definition.*) (*<verb>have*); part_element : SET[0:?] OF document_schema_element FOR whole_element (*<desc>These are the elements that are the parts of this element.*) (*<verb>be composed of*); WHERE val: document_schema :=: whole_element.document_schema (*<desc>Each part of a document_schema_element must be part of the same document_schema as the document_schema_element it is a part of.*) (*<ruletype>val*); END_ENTITY; ADD TYPE ndt_compositor = ENUMERATION OF (required_select_one, optional_select_one, required_select_one_or_more, optional_select_one_or_more) (*<desc>This specifies the behavior of the part elements for an element in a document schema.*); END_TYPE; ADD ENTITY document_schema_attribute (*<desc>This is a characteristic of document_schema_element.*) SUBTYPE OF (document_schema_part); optionality: OPTIONAL ndt_boolean (*<desc>This defines the optionality of this attribute within the document_schema_element. If FALSE, this attribute must be included in a document_schema_element. If TRUE or NULL, this attribute may be omitted.*); cardinality : OPTIONAL ndt_pint1 (*<desc>This specifies the maximum number of attributes of this type that may be included in a document_schema_element. If NULL, the maximum number is unrestricted.*); document_schema_element : document_schema_element (*<desc>This defines the element that this attribute is a part of.*) (*<verb>be a part of*); whole_attribute : OPTIONAL document_schema_attribute (*<desc>This defines the attribute that this attribute is a part of, used when the related attribute is an attribute group.*) (*<verb>be a part of*); INVERSE part_attribute : SET[0:?] OF document_schema_attribute FOR whole_attribute (*<desc>These are the attributes that are the parts of this attribute.*) (*<verb>be composed of*); WHERE sri1: document_schema :=: document_schema_element.document_schema (*<desc>Each document_schema_attribute of a document_schema_element must be part of the same document_schema as the document_schema_element.*) (*<ruletype>sri*); sri2: document_schema :=: whole_attribute.document_schema (*<desc>All part attributes must belong to the same document schema as the whole attribute they are part of.*) (*<ruletype>sri*); END_ENTITY; ADD ENTITY document_schema_comment (*<desc>This is a comment within the document schema.*) SUBTYPE OF (document_schema_part); END_ENTITY; ADD ENTITY document_schema_entity (*<desc> This is an instance of pre-defined content that is defined to be part of a document schema. This may contain pre-defined text (e.g., 'boiler-plate') or parts of the document that are frequently repeated without variation, such as keywords.*) SUBTYPE OF (document_schema_part); INVERSE document_schema_entity_content : SET[0:?] OF document_schema_entity_content FOR document_schema_entity (*<desc>These are the predefined content of the entity.*) (*<verb>provide content for*); END_ENTITY; ADD ENTITY document_schema_entity_content (*<desc> This is the pre-defined content of a document schema entity. This may be either locally defined as text (unlimited characters) or as a reference to existing content in an existing document (if already defined). If more than one content specification is made for the document schema entity, the sequence attribute should be used to determine their relative ordering.*) SUBTYPE OF (association); text : OPTIONAL ndt_text (*<desc>This is a block of text that is part of a document schema entity.*); sequence : OPTIONAL ndt_pint1 (*<desc>This is the sequence number of this text of document content within the document schema entity. A NULL or a value of zero ('0') states that this content specification has no order. Multiple parts with the same sequence value means that these content specifications may appear in any order relative to each other but they appear at the same place within the document schema entity.*); document_schema_entity : document_schema_entity (*<desc>This is the document schema entity that is being described.*) (*<verb>describe*); document_content : OPTIONAL document_content (*<desc>This references parts of existing document specifications as part of this document schema entity.*) (*<verb>reference*); UNIQUE si: text, sequence, document_schema_entity, document_content; WHERE mse: EXISTS(text) XOR EXISTS(document_content) (*<desc>Each document schema entity content may provide either text or a reference to part of an existing document specification.*) (*<ruletype>mse*); END_ENTITY; -- cleanup of previous document content models ALTER ENTITY application_for_permit; DROP applicant (*<change>semantics provided by document_spec_business_assoc*); DROP permit_specification (*<change>semantics provided by document_spec_reference*); INVERSE DROP license_right (*<change>semantics provided by document_information_content*); DROP facility (*<change>semantics provided by document_information_content*); END_ENTITY; DROP ENTITY application_right_submittal; ALTER ENTITY business_associate; INVERSE DROP applicant_for (*<change>semantics provided by document_spec_business_assoc*); END_ENTITY; ALTER ENTITY business_associate_injury; INVERSE DROP incident_report (*<change>semantics provided by document_information_content*); END_ENTITY; DROP ENTITY business_assoc_injury_declr; ALTER ENTITY commingling_permit; INVERSE DROP well_completion (*<change>semantics provided by document_information_content*); END_ENTITY; ALTER ENTITY contract; DROP contract_clause (*<change>semantics provided by document_information_content*); INVERSE DROP composed_of (*<change>semantics provided by document_information_content*); DROP encumbrance (*<change>semantics provided by document_spec_reference*); DROP part_of (*<change>semantics provided by document_information_content*); END_ENTITY; DROP ENTITY contract_amendment_clause; DROP ENTITY contract_clause; DROP ENTITY contract_clause_item; DROP ENTITY contract_clause_set; DROP ENTITY contract_encumbrance_assn; DROP ENTITY contract_reference; ALTER ENTITY contract_amendment; WHERE DROP val1; END_ENTITY; ALTER ENTITY contractual_obligation; INVERSE DROP contract_clause; WHERE DROP sri; END_ENTITY; DROP ENTITY contractual_obligation_basis; ALTER ENTITY data_collection; INVERSE DROP specify_contents_of (*<change>semantics provided by document_information_content*); END_ENTITY; ALTER ENTITY facility; INVERSE DROP application_for_permit; END_ENTITY; ALTER ENTITY earth_parcel; INVERSE DROP reclamation_certificate (*<change>semantics provided by document_information_content*); END_ENTITY; ALTER ENTITY encumbrance; INVERSE DROP contract (*<change>semantics provided by document_spec_reference*); END_ENTITY; ALTER ENTITY incident_report; INVERSE DROP business_associate_injury (*<change>semantics provided by document_information_content*); DROP property_damage (*<change>semantics provided by document_information_content*); END_ENTITY; DROP ENTITY incident_report_damage_assn; DROP ENTITY earth_parcel_reclamation_assn; ALTER ENTITY license_right; INVERSE DROP application_for_permit (*<change>semantics provided by document_information_content*); END_ENTITY; ALTER ENTITY map; INVERSE DROP earth_surface_feature (*<change>semantics provided by document_information_content*); END_ENTITY; DROP ENTITY map_area; DROP ENTITY permit_applic_facility_incl; ALTER ENTITY permit_specification; INVERSE DROP application_for_permit (*<change>semantics provided by document_spec_reference*); END_ENTITY; ALTER ENTITY property_damage; INVERSE DROP damage_report (*<change>semantics provided by document_information_content*); END_ENTITY; ALTER ENTITY reclamation_certificate; INVERSE DROP earth_parcel (*<change>semantics provided by document_information_content*); END_ENTITY; DROP ENTITY ref_contract_clause; DROP ENTITY ref_contract_clause_item; DROP ENTITY ref_contract_reference_use; ALTER ENTITY ref_clause_amendment_reason; INVERSE DROP contract_amendment_clause; END_ENTITY; ALTER ENTITY regulation; DROP regulation_set (*<change>semantics provided by document_information_content*); END_ENTITY; ALTER ENTITY regulation_set; INVERSE DROP regulation (*<change>semantics provided by document_information_content*); END_ENTITY; ALTER ENTITY technical_earth_feature; INVERSE DROP map (*<change>semantics provided by document_information_content*); END_ENTITY; ALTER ENTITY well_completion; INVERSE DROP commingling_permit (*<change>semantics provided by document_information_content*); END_ENTITY; DROP ENTITY well_completion_commingling; ALTER ENTITY well_report; DROP text (*<change>semantics provided by document_textual_content*); END_ENTITY; ALTER ENTITY well_log; INVERSE DROP well_log_trace; END_ENTITY; DROP ENTITY well_log_composition; ALTER ENTITY well_log_trace; INVERSE DROP well_log; END_ENTITY; END_CHANGE;