POSC Specifications: Epicentre Version 3.0 | Logical Data Model |
Make the material, facility and activity composition behavior consistent. Add more composition behavior.
CHANGE ERP2_composition -- common composition ALTER ENTITY common_activity_composition (*<DESC>An association indicating that activities characterized (via classification or kind of class) by an activity class may reasonably be expected to have a subactivity that is characterized by another activity class. This is not declaring the composition of a class. Rather it is declaring an expected composition of an activity that is a member of the class. A decomposition is not required but if a decomposition is defined then this is the expected decomposition. For example, a class of 'start car' might have three common compositions of class 'insert key', 'turn key' and 'release key' respectively. Thus, an activity which is characterized as 'start car' could be expected to have three subactivities which are respectively characterized as 'insert key', 'turn key' and 'release key'. This composition is the nominal composition of the actual activity (what is expected), but the actual activity composition should describe what was actually done rather than what was intended.*); ALTER whole (*<DESC>This declares the activity class whose common composition is being described. This class represents the 'assembly' activity in a 'parts-assembly' relationship.*); ALTER part (*<DESC>This declares an activity class which commonly characterizes a subactivity of the 'assembly' activity. This class represents the 'part' activity of a 'parts-assembly' relationship.*); ADD composition_type : OPTIONAL ref_composition_type (*<DESC>This defines the expected type of composition such as assembly, linear assembly or collection.*) (*<VERB>be constrained to a type of*); ADD count : OPTIONAL ndt_pint4 (*<DESC>This declares the number of subactivities of type 'part' that are normally expected to be components of 'whole' activity. These components are not in a specified order among themselves. A value of zero or a null value explicitly declares that any number of parts may be nominal components of the whole. If sequence and count are both specified then this is a repetition count and there should normally not be any interspersed activities.*); ADD sequence : OPTIONAL ndt_pint4 (*<DESC>This describes the expected sequence of the part activity as a nominal component of the whole activity. A value of zero or null explicitly declares that the sequence of this part is not defined.*); UNIQUE ALTER si ADD sequence LAST; END_ENTITY; ALTER ENTITY common_facility_composition (*<DESC>An association indicating that facilities characterized (via classification or kind of class) by a facility class may reasonably be expected to have a subfacility that is characterized by another facility class. This is not declaring the composition of a class. Rather it is declaring an expected composition of a facility that is a member of the class. A decomposition is not required but if a decomposition is defined then this is the expected decomposition. For example, a class of 'storage facility' might have two common compositions of class 'container' and 'cover' respectively. Thus, a facility which is characterized as 'storage facility' could be expected to have two subfacilities which are respectively characterized as 'container' and 'cover'. This composition is the nominal composition of the actual facility (what is expected), but the actual facility composition should describe what was actually done rather than what was intended.*); ALTER whole (*<DESC>This declares the facility class whose common composition is being described. This class represents the 'assembly' facility in a 'parts-assembly' relationship.*); ALTER part (*<DESC>This declares a facility class which commonly characterizes a subfacility of the 'assembly' facility. This class represents the 'part' facility of a 'parts-assembly' relationship.*); ADD composition_type : OPTIONAL ref_composition_type (*<DESC>This defines the expected type of composition such as assembly, linear assembly or collection.*) (*<VERB>be constrained to a type of*); ADD count : OPTIONAL ndt_pint4 (*<DESC>This declares the number of subfacilities of type 'part' that are normally expected to be components of 'whole' facility. These components are not in a specified order among themselves. A value of zero or a null value explicitly declares that any number of parts may be nominal components of the whole. If sequence and count are both specified then this is a repetition count and there should normally not be any interspersed facilities.*); ADD sequence : OPTIONAL ndt_pint4 (*<DESC>This describes the expected sequence of the part facility as a nominal component of the whole facility. A value of zero or null explicitly declares that the sequence of this part is not defined.*); UNIQUE ALTER si ADD sequence LAST; END_ENTITY; ALTER ENTITY common_material_composition (*<DESC>An association indicating that material characterized (via classification or kind of class) by a material class may reasonably be expected to have a submaterial that is characterized by another material class. This is not declaring the composition of a class. Rather it is declaring an expected composition of a material that is a member of the class. A decomposition is not required but if a decomposition is defined then this is the expected decomposition. For example, a class of 'pie' might have two common compositions of class 'crust' and 'filling' respectively. Thus, a material which is characterized as 'pie' could be expected to have two submaterials which are respectively characterized as 'crust' and 'filling'. This composition is the nominal composition of the actual material (what is expected), but the actual material composition should describe what was actually done rather than what was intended.*); ALTER whole (*<DESC>This declares the material class whose common composition is being described. This class represents the 'assembly' material in a 'parts-assembly' relationship.*); ALTER part (*<DESC>This declares a material class which commonly characterizes a submaterial of the 'assembly' material. This class represents the 'part' material of a 'parts-assembly' relationship.*); ADD composition_type : OPTIONAL ref_composition_type (*<DESC>This defines the expected type of composition such as assembly, linear assembly or collection.*) (*<VERB>be constrained to a type of*); ADD count : OPTIONAL ndt_pint4 (*<DESC>This declares the number of submaterials of type 'part' that are normally expected to be components of 'whole' material. These components are not in a specified order among themselves. A value of zero or a null value explicitly declares that any number of parts may be nominal components of the whole. If sequence and count are both specified then count is a repetition count and there should normally not be any interspersed materials.*); ADD sequence : OPTIONAL ndt_pint4 (*<DESC>This describes the expected sequence of the part material as a nominal component of the whole material. A value of zero or null explicitly declares that the sequence of this part is not defined.*); ADD amount : OPTIONAL ndt_any_quantity (*<DESC>This describes the expected amount of the part material. This will normally only be used when the part class represents a class of bulk material. This might be described as an absolute amount or as relative amounts such a fraction or percentage.*); UNIQUE ALTER si ADD sequence LAST; END_ENTITY; ----- Specific composition ALTER ENTITY facility_composition (*<DESC>An association indicating that one facility is a component or part of a general facility. A facility may be a part of many general facilities, sequentially and simultaneously. For example, a gathering center facility may be an assembly of separation, gas treatment, gas compression, and liquid stabilization and storage facilities.*); ALTER whole (*<DESC>This is the general facility whose composition is being described. This represents the 'whole' of a 'parts-assembly' relationship.*); DROP part (*<CHANGE>Move to subtypes.*); ADD composition_type : ref_composition_type (*<DESC>This defines the type of composition such as assembly, linear assembly or collection.*) (*<VERB>be a type of*); ADD sequence : OPTIONAL ndt_pint4 (*<DESC>This describes the sequence of the part facility as a component of the whole facility.*); WHERE DROP val1 (*<CHANGE>Moved to subtype.*); ADD val2 : NOT EXISTS (sequence) OR (composition_type.identifier = 'linear assembly') (*<DESC>For each instance, sequence can only be specified if the composition is a linear assembly.*) (*<RULETYPE>VAL*); END_ENTITY; ALTER ENTITY facility_collection AS facility_specific_composition (*<DESC> This association asserts that a specific facility is part of another specific facility.*); ADD part : facility (*<DESC>Indicates the facility that is described as being a part of the whole facility. This represents the 'part' of a 'parts-assembly' relationship.*) (*<VERB>have as the part*); WHERE ADD val1 : part :<>: whole (*<DESC>A facility cannot be part of itself.*) (*<RULETYPE>VAL*); END_ENTITY; ALTER ENTITY facility_assembly AS facility_type_composition (*<DESC> Specification of the composition of a facility by asserting the type of the part facility.*); ADD part : facility_class (*<DESC>Indicates that the part facility is a member of this class. This class represents the 'part' of a 'parts-assembly' relationship.*) (*<VERB>be a type of*); ADD count : OPTIONAL ndt_pint4 (*<DESC>This declares the number of subfacilities of type 'part' that are components of the 'whole' facility. These components are not in a specified order among themselves. If sequence and count are both specified then this is a repetition count and there should normally not be any interspersed facilities.*); UNIQUE ALTER si ADD sequence LAST; END_ENTITY; ALTER ENTITY material_composition (*<DESC> An association indicating that one material is a component or part of another material. A material may be a part of many general facilities, sequentially and simultaneously.*); ALTER characterize AS whole (*<DESC>This is the material whose composition is being described. This represents the 'whole' of a 'parts-assembly' relationship.*); ADD sequence : OPTIONAL ndt_pint4 (*<DESC>This describes the sequence of the part material as a component of the whole material.*); ADD amount : OPTIONAL ndt_any_quantity (*<DESC>This describes the amount of the part material. This will normally only be used when the part represents bulk material. This might be described as an absolute amount or as relative amounts such a fraction or percentage.*); WHERE ADD val2 : NOT EXISTS (sequence) OR (composition_type.identifier = 'linear_assembly') (*<DESC>For each instance, sequence can only be specified if the composition is a linear assembly.*) (*<RULETYPE>VAL*); END_ENTITY; ALTER ENTITY material_type_composition (*<DESC> Specification of the composition of a material by asserting the type of the part material.*); ALTER component_class AS part (*<DESC>Indicates that the part material is a member of this class. This class represents the 'part' of a 'parts-assembly' relationship.*); ALTER count (*<DESC>This declares the number of submaterials of type 'part' that are components of the 'whole' material. These components are not in a specified order among themselves. If sequence and count are both specified then this is a repetition count and there should normally not be any interspersed materials.*); INVERSE DROP pty_mass_fraction (*<CHANGE> Redundant to attribute amount.*); DROP pty_mole_fraction (*<CHANGE> Redundant to attribute amount.*); DROP pty_volume_fraction (*<CHANGE> Redundant to attribute amount.*); UNIQUE ALTER si ADD sequence LAST; END_ENTITY; ALTER ENTITY material_specific_composition; ALTER component_material AS part (*<DESC>Indicates the material that is described as being a part of the whole material. This represents the 'part' of a 'parts-assembly' relationship.*) (*<VERB>have as the part*); END_ENTITY; ALTER ENTITY pty_mass_fraction; DROP material_type_composition; UNIQUE ALTER si DROP material_type_composition; END_ENTITY; ALTER ENTITY pty_mole_fraction; DROP material_type_composition; UNIQUE ALTER si DROP material_type_composition; END_ENTITY; ALTER ENTITY pty_volume_fraction; DROP material_type_composition; UNIQUE ALTER si DROP material_type_composition; END_ENTITY; ---- inverse relationships ALTER ENTITY facility; INVERSE ALTER part_of_facility ALTER TYPE AS facility_specific_composition; END_ENTITY; ALTER ENTITY facility_class; INVERSE ADD facility_type_composition : SET[0:?] OF facility_type_composition FOR part (*<DESC> These are the type compositions which assert that a facility is composed of a facility of this type.*) (*<VERB>define the type of*); END_ENTITY; ALTER ENTITY material_class; INVERSE ALTER material_type_composition (*<DESC> These are the type compositions which assert that a material is composed of a material of this type.*); END_ENTITY; ALTER ENTITY ref_composition_type; INVERSE ADD common_activity_composition : SET [0:?] OF common_activity_composition FOR composition_type (*<DESC>These are the instances which utilize the semantics of this instance.*) (*<VERB>be referenced by*); ADD common_facility_composition : SET [0:?] OF common_facility_composition FOR composition_type (*<DESC>These are the instances which utilize the semantics of this instance.*) (*<VERB>be referenced by*); ADD common_material_composition : SET [0:?] OF common_material_composition FOR composition_type (*<DESC>These are the instances which utilize the semantics of this instance.*) (*<VERB>be referenced by*); ADD facility_composition : SET [0:?] OF facility_composition FOR composition_type (*<DESC>These are the instances which utilize the semantics of this instance.*) (*<VERB>be referenced by*); END_ENTITY; END_CHANGE;