@startuml
skinparam class {
    BackgroundColor<<master-data>> LightSalmon
    BackgroundColor<<work-product-component>> Gold
    BackgroundColor<<abstract>> LightSteelBlue
    BackgroundColor<<reference-data>> Turquoise
    BackgroundColor<<Abstraction>> LightSkyBlue
    BackgroundColor<<error>> Red
    BackgroundColor<<Activity>> LightSkyBlue
    BackgroundColor<<ReferenceType>> LightSkyBlue
    BackgroundColor<<WorkProductComponent>> LightSkyBlue
    BackgroundColor<<Project>> LightSkyBlue
    BackgroundColor<<Survey>> LightSkyBlue
    BackgroundColor<<Dataset>> LightSkyBlue
    BackgroundColor<<File>> LightSkyBlue
    BackgroundColor<<FileCollection>> LightSkyBlue
    packageStyle rectangle
}
package "AbstractReferencePropertyType.1.0.0 Entity" <<rectangle>>
{
abstract class "AbstractReferencePropertyType" <<abstract>>
   note top of "AbstractReferencePropertyType" : Class evaluated\nin this E-R diagram
   abstract class "AbstractPropertyType" <<abstract>>
   class "UnitQuantity" <<reference-data>>
   "AbstractReferencePropertyType" --> "1" "UnitQuantity" : "UnitQuantityID"
}
package "Legend"  <<rectangle>> #EEEEEE {
   abstract class "Super Type" <<Abstraction>>
   class MasterDataEntity <<master-data>>
   class WorkProductComponent <<work-product-component>>
   abstract class AbstractEntity <<abstract>>
   "Super Type" <|-- MasterDataEntity
   MasterDataEntity *- "1" AbstractEntity : MasterDataEntity\nis composed of one\nAbstractEntity
   WorkProductComponent *- "*" AbstractEntity : WorkProductComponent\nis composed of many\nAbstractEntities
   MasterDataEntity "1" <-- WorkProductComponent : Relationship\nto one
   class UnspecifiedEntity <<any-group-type>>
   WorkProductComponent --> "*" UnspecifiedEntity: Named relationship\nto many
   class ReferenceEntity << reference-data >>
   WorkProductComponent --> "1" ReferenceEntity: Named relationship\nto one
}
@enduml