@startuml
!theme vibrant
skinparam classFontSize 14
!define LIGHTORANGE
skinparam componentStyle uml2
skinparam wrapMessageWidth 100
' skinparam ArrowColor #Maroon
' Remove shadows
skinparam shadowing false
'skinparam linetype polyline
skinparam ArrowMessageAlignment left


class "<b>Object</b> (premis:Object)" as premis_Object [[#premis%3AObject]]
class "<b>Intellectual entity</b> (premis:IntellectualEntity)" as premis_IntellectualEntity [[#premis%3AIntellectualEntity]]
class "<b>Object</b> (premis:Object)" as premis_Object [[#premis%3AObject]]
class "<b>Physical representation</b> (haObj:PhysicalRepresentation)" as haObj_PhysicalRepresentation [[#haObj%3APhysicalRepresentation]]
class "<b>Representation</b> (premis:Representation)" as premis_Representation [[#premis%3ARepresentation]]
class "<b>Digital representation</b> (haObj:DigitalRepresentation)" as haObj_DigitalRepresentation [[#haObj%3ADigitalRepresentation]]
class "<b>Representation</b> (premis:Representation)" as premis_Representation [[#premis%3ARepresentation]]
class "<b>File</b> (premis:File)" as premis_File [[#premis%3AFile]]
class "<b>Object</b> (premis:Object)" as premis_Object [[#premis%3AObject]]
class "<b>Fixity</b> (premis:Fixity)" as premis_Fixity [[#premis%3AFixity]]
class "<b>Storage location</b> (premis:StorageLocation)" as premis_StorageLocation [[#premis%3AStorageLocation]]
class "<b>Local identifier</b> (haObj:LocalIdentifier)" as haObj_LocalIdentifier [[#haObj%3ALocalIdentifier]]
class "<b>Storage medium</b> (premis:StorageMedium)" as premis_StorageMedium [[#premis%3AStorageMedium]]
class "<b>Representation</b> (premis:Representation)" as premis_Representation [[#premis%3ARepresentation]]
class "<b>Object</b> (premis:Object)" as premis_Object [[#premis%3AObject]]
class "<b>File Format</b> (dct:FileFormat)" as dct_FileFormat [[#dct%3AFileFormat]]



premis_Object --> "[0..n]" premis_Object : has relationship >

premis_IntellectualEntity --|> premis_Object #blue;line.dotted;text:blue


premis_IntellectualEntity --> "[0..n]" premis_IntellectualEntity : has Part >

premis_IntellectualEntity --> "[0..n]" haObj_DigitalRepresentation : has access copy >

premis_IntellectualEntity --> "[0..1]" haObj_DigitalRepresentation : has archiving master >

premis_IntellectualEntity --> "[0..1]" haObj_DigitalRepresentation : has mezzanine format >

premis_IntellectualEntity --> "[0..n]" premis_IntellectualEntity : is Part Of >

premis_IntellectualEntity --> "[0..n]" premis_Representation : is Represented by >

premis_IntellectualEntity --> "[0..n]" haObj_LocalIdentifier : local identifier >

haObj_PhysicalRepresentation --|> premis_Representation #blue;line.dotted;text:blue


haObj_PhysicalRepresentation --> "[0..n]" premis_StorageMedium : has medium >

haObj_DigitalRepresentation --|> premis_Representation #blue;line.dotted;text:blue


haObj_DigitalRepresentation --> "[0..n]" premis_File : has Root >

haObj_DigitalRepresentation --> "[0..n]" haObj_PhysicalRepresentation : has Source >

haObj_DigitalRepresentation --> "[1..n]" premis_File : includes >

haObj_DigitalRepresentation --> "[0..1]" premis_IntellectualEntity : is access copy of >

haObj_DigitalRepresentation --> "[1..n]" premis_IntellectualEntity : is archiving master of >

haObj_DigitalRepresentation --> "[0..n]" premis_File : is media fragment of >

haObj_DigitalRepresentation --> "[0..1]" premis_IntellectualEntity : is mezzanine format of >

haObj_DigitalRepresentation --> "[1..n]" premis_IntellectualEntity : represents >

premis_File --|> premis_Object #blue;line.dotted;text:blue


premis_File --> "[1..1]" dct_FileFormat : Format >

premis_File --> "[0..n]" premis_File : documents >

premis_File --> "[1..1]" premis_Fixity : has fixity >

premis_File --> "[0..n]" haObj_DigitalRepresentation : has media fragment >

premis_File --> "[1..n]" haObj_DigitalRepresentation : is Included in >
premis_File : mime type : <i>xsd:string</i> [0..1]


premis_File --> "[0..1]" premis_File : next file in sequence >

premis_File --> "[1..n]" premis_StorageLocation : stored at >

premis_File --> "[0..n]" premis_File : supersedes >


premis_Fixity : checksum creator : <i>xsd:string</i> [0..n]

premis_Fixity : fixity checksum : <i>xsd:string</i> [1..n]



premis_StorageLocation : file path : <i>xsd:string</i> [1..n]


premis_StorageLocation --> "[0..n]" premis_StorageMedium : medium >


haObj_LocalIdentifier : value : <i>xsd:string</i> [1..1]




premis_Representation --|> premis_Object #blue;line.dotted;text:blue





hide circle
hide methods
hide empty members
@enduml


