POSC Specifications: Epicentre Version 3.0 | Logical Data Model |
DROP facility_material_class and replace it with explicit relationships with MSE rules. Allow an earth_feature to also be classified based on its material nature. This change represents adjustments to changes: ERP_typical_material_subtypes ERP_facility_classification ERP_adjustments
CHANGE ERP_classification_adjustments DROP ENTITY facility_material_class; ALTER ENTITY facility_classification; ALTER facility_material_class AS facility_class ALTER TYPE AS facility_class ADD OPTIONAL (*<DESC>Indicates the facility class being used for the classification.*); ADD material_class : OPTIONAL material_class (*<DESC>Indicates the material class being used for the classification.*) (*<VERB>specify as the class*); UNIQUE ALTER si ADD material_class BEFORE facility; WHERE ADD mse : EXISTS(facility_class) XOR EXISTS(material_class) (*<DESC>Each instance must specify either FACILITY_CLASS or MATERIAL_CLASS.*) (*<RULETYPE>MSE*); END_ENTITY; ALTER ENTITY typical_facility_classification (*<DESC>An association indicating a typical facility is classified as a member of a class. The specification must fall within the ranges defining the class.*); ALTER facility_material_class AS facility_class ALTER TYPE AS facility_class ADD OPTIONAL (*<DESC>Indicates the facility class being used for the classification.*); ADD material_class : OPTIONAL material_class (*<DESC>Indicates the material class being used for the classification.*) (*<VERB>specify as the class*); UNIQUE ALTER si ADD material_class BEFORE typical_facility; WHERE ADD mse : EXISTS(facility_class) XOR EXISTS(material_class) (*<DESC>Each instance must specify either FACILITY_CLASS or MATERIAL_CLASS.*) (*<RULETYPE>MSE*); END_ENTITY; ALTER ENTITY material_class ADD SUBTYPE OF (classification_class); INVERSE ADD facility_members : SET[0:?] OF facility_classification FOR material_class (*<DESC>The set of the facility classifications that have been made using this class.*) (*<VERB>be the class for*); ADD typical_facility_members : SET[0:?] OF typical_facility_classification FOR material_class (*<DESC>The set of all the typical facility classifications that have been made using this class.*) (*<VERB>be the class for*); ADD earth_feature_members : SET[0:?] OF earth_feature_classification FOR material_class (*<DESC>The set of the earth feature classifications that have been made using this class.*) (*<VERB>be the class for*); ADD classify_facility_class : SET [0:?] OF facility_class_classification FOR be_classified_as_material (*<DESC>The set of all the facility class classifications that have been made using this class.*) (*<VERB>be the class for*); ADD common_material_property : SET[0:?] OF common_material_property FOR material_class (*<DESC>The set of property types that members of this class may commonly have.*) (*<VERB>commonly have*); END_ENTITY; ALTER ENTITY facility_class ADD SUBTYPE OF (classification_class); INVERSE ADD facility_members : SET[0:?] OF facility_classification FOR facility_class (*<DESC>The set of the facility classifications that have been made using this class.*) (*<VERB>be the class for*) (*<CHANGE>This fixes a previous change which accidentally omitted the inverse.*); ADD typical_facility_members : SET[0:?] OF typical_facility_classification FOR facility_class (*<DESC>The set of all the typical facility classifications that have been made using this class.*) (*<VERB>be the class for*) (*<CHANGE>This fixes a previous change which accidentally omitted the inverse.*); ADD common_facility_property : SET[0:?] OF common_facility_property FOR facility_class (*<DESC>The set of property types that members of this class may commonly have.*) (*<VERB>commonly have*); ADD common_facility_whole : SET[0:?] OF common_facility_composition FOR part (*<DESC>These are the classes whose members may commonly have this class as a part.*) (*<VERB>commonly have as a whole*); ADD common_facility_part : SET[0:?] OF common_facility_composition FOR whole (*<DESC>These are the classes whose members may commonly be part of this class.*) (*<VERB>commonly have as a part*); END_ENTITY; ALTER ENTITY facility_class_classification; (*<DESC>An association indicating a facility class being classified to be a member of another class. A facility class may be classified in many ways, simultaneously and sequentially.*) ALTER be_classified_as AS be_classified_as_facility ALTER TYPE AS facility_class ADD OPTIONAL (*<DESC>Indicates the facility class that the member is being classified as.*); ADD be_classified_as_material : OPTIONAL material_class (*<DESC>Indicates the material class that the member is being classified as.*) (*<VERB>be classified as*); UNIQUE ALTER si ADD be_classified_as_material BEFORE have_as_a_member; WHERE ADD mse : EXISTS(be_classified_as_facility) XOR EXISTS(be_classified_as_material) (*<DESC>Each instance must specify either a facility class or a material class but not both.*) (*<RULETYPE>MSE*); ALTER val1 : have_as_a_member :<>: be_classified_as_facility; END_ENTITY; ALTER ENTITY common_facility_material_property AS common_facility_property; (*<DESC>An association which declares a type of property which is commonly associated with a facility class.*) ALTER facility_material_class AS facility_class ALTER TYPE AS facility_class; END_ENTITY; ADD ENTITY common_material_property SUBTYPE OF (aliasable_technical_reference); (*<DESC>An association which declares a type of property which is commonly associated with a material class.*) (*<POPULATION>OPEN*) material_class : material_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 : material_class, property_kind; END_ENTITY; ALTER ENTITY earth_feature_classification; ALTER earth_feature_class ADD OPTIONAL; ADD material_class : OPTIONAL material_class (*<DESC>Indicates the material class being used for the classification.*) (*<VERB>specify as the class*); UNIQUE ALTER si ADD material_class LAST; WHERE ADD mse : EXISTS(earth_feature_class) XOR EXISTS(material_class) (*<DESC>Each instance must specify either EARTH FEATURE or MATERIAL_CLASS.*) (*<RULETYPE>MSE*); END_ENTITY; ALTER ENTITY common_facility_composition; ALTER part ALTER TYPE AS facility_class; ALTER whole ALTER TYPE AS facility_class; END_ENTITY; END_CHANGE;