This is the primary Storage Inventory Data Model documentation. This documentation is generated from the VO-DML description of the data model.



Storage Inventory Data Model

Table of Contents

    Abstract
    Status
    Acknowledgements
1.     model: si
2.     Packages and Types
2.1     [root package]
2.1.1     primitiveType:uuid
2.2     package: si
2.2.1     objectType: Artifact
2.2.2     objectType: DeletedArtifactEvent
2.2.3     objectType: DeletedStorageLocationEvent
2.2.4     objectType: Entity
2.2.5     objectType: SiteLocation
2.2.6     objectType: StorageLocation
2.2.7     objectType: StorageLocationEvent
2.2.8     objectType: StorageSite
3.     vodml-id-s
4.     Imported Models
4.1     ivoa

Abstract

The Storage Inventory Data Model is used to track existence and location of data files.



Status

The Storage Inventory Data Model is a work-in-progress and incomplete.



1. Model: Storage Inventory Data Model (si)

Authors : Patrick Dowler, Canadian Astronomy Data Centre
Date : 2021-05-12T15:00:00
Version : 0.6
Description : a general purpose data model for managing storage inventory

2.Model contents: Packages and Types

The following sub-sections present all packages in the model with their types. The packages are listed here in alphabetical order. Each sub-section contains a description of the package and a table containing its various features.

2.1 [root package]

Model si
child package(s) si
Primitive types uuid

2.1.1 primitiveType: uuid

vodml-id uuid
description represents a 128-bit binary ID in the canonical ascii UUID format

2.2 package: si

vodml-id si
description this package contains the SI object types and enumerations
parent si
Object types Artifact DeletedArtifactEvent DeletedStorageLocationEvent Entity SiteLocation StorageLocation StorageLocationEvent StorageSite

2.2.1 objectType: Artifact

vodml-id Artifact
description an item in the storage system; usually a file
package si
extends Entity [si:Entity]
attributes
name feature value
uri type ivoa:anyURI
vodml-id Artifact.uri
multiplicity 1
description an globally uniquer logical identifier for the artifact
uriBucket type ivoa:string
vodml-id Artifact.uriBucket
multiplicity 1
description a short 5 letter code generated from the uri so that validation code can work in batches; the value must be generated from the Artifact.uri such that an artifact is always in the same bucket; the code could be generated by taking the first 5 characters from a checksum of the uri (5 hex chars gives up to 1 million buckets)
contentChecksum type ivoa:anyURI
vodml-id Artifact.contentChecksum
multiplicity 1
description the checksum of the artifact data; the URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56
contentType type ivoa:string
vodml-id Artifact.contentLastModified
multiplicity 1
description timestamp of the last modification of the stored bytes (file)
contentLength type ivoa:integer
vodml-id Artifact.contentLength
multiplicity 1
description the size of the resolved artifact; file size in bytes
contentType type ivoa:string
vodml-id Artifact.contentType
multiplicity 0..1
description label specifying the format of the resolved artifact; typically a MIME-type
contentEncoding type ivoa:string
vodml-id Artifact.contentEncoding
multiplicity 0..1
description label specifying the encoding of the file; typically a compression type

2.2.2 objectType: DeletedArtifactEvent

vodml-id DeletedArtifactEvent
description an entity used to signal/track deletion of an artifact
package si
extends Entity [si:Entity]

2.2.3 objectType: DeletedStorageLocationEvent

vodml-id DeletedStorageLocationEvent
description an entity used to signal/track deletion of a copy of an artifact at a storage site
package si
extends Entity [si:Entity]

2.2.4 objectType: Entity

vodml-id Entity
description base entity class to support persistence; entity attributes are generally set or updated by persistence implementations
package si
abstract True
Subclasses in this model Artifact DeletedArtifactEvent DeletedStorageLocationEvent StorageLocationEvent
attributes
name feature value
id type uuid [si:uuid]
vodml-id Entity.id
multiplicity 1
description globally unique identifier (primary key)
lastModified type ivoa:datetime
vodml-id Entity.lastModified
multiplicity 0..1
description timestamp of last modification of this entity; the timestamp is intended to be assigned and/or updated when the entity is stored (e.g. in a database); value can be null for new entities that have not been persisted
metaChecksum type ivoa:anyURI
vodml-id Entity.metaChecksum
multiplicity 0..1
description metadata checksum of this entity; the URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56; value can be null for new entities that have not been persisted; the algorithm for computing the metadata checksum is the same as for CAOM and has been refactored into a common library

2.2.5 objectType: SiteLocation

vodml-id SiteLocation
description location of an artifact at a site; instances are created and maintained in a global inventory
package si
attributes
name feature value
site type uuid [si:uuid]
vodml-id SiteLocation.site
multiplicity 1
description reference to the site

2.2.6 objectType: StorageLocation

vodml-id StorageLocation
description storage location of a file; instances are created and maintained in a storage site
package si
attributes
name feature value
storageID type ivoa:anyURI
vodml-id StorageLocation.storageID
multiplicity 1
description storage site/system internal identifier
storageBucket type ivoa:string
vodml-id StorageLocation.storageBucket
multiplicity 0..1
description a short string code so that validation code can work in batches; this could be the same as the Artifact.uriBucket, it could be part of the Artifact.uri, or it could be a completely independent value generated by the storage system

2.2.7 objectType: StorageLocationEvent

vodml-id StorageLocationEvent
description an entity used to signal/track a new copy of an artifact at a storage site
package si
extends Entity [si:Entity]

2.2.8 objectType: StorageSite

vodml-id StorageSite
description description of a storage site
package si
attributes
name feature value
resourceID type ivoa:anyURI
vodml-id StorageSite.resourceID
multiplicity 1
description resource identifier for the web service API of a site
name type ivoa:string
vodml-id StorageSite.name
multiplicity 1
description common (display) name of a site
allowRead type ivoa:boolean
vodml-id StorageSite.allowRead
multiplicity 1
description site is configured to allow callers to get metadata and/or content of files
allowWrite type ivoa:boolean
vodml-id StorageSite.allowWrite
multiplicity 1
description site is configured to allow callers to write and delete files and modify file metadata


3.Element Identifiers/VO-DMLrefs

The following table shows all fully qualified vodml-ids for this data model. It is ordered alphabetically and the identifiers are hyper-linked to the location in the document where the actual element is fully defined.
vodml-id feature type description
vo-dml:model a general purpose data model for managing storage inventory
uuid primitiveType represents a 128-bit binary ID in the canonical ascii UUID format
si package this package contains the SI object types and enumerations
Artifact objectType an item in the storage system; usually a file
Artifact.contentChecksum attribute the checksum of the artifact data; the URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56
Artifact.contentEncoding attribute label specifying the encoding of the file; typically a compression type
Artifact.contentLength attribute the size of the resolved artifact; file size in bytes
Artifact.contentLastModified attribute timestamp of the last modification of the stored bytes (file)
Artifact.contentType attribute label specifying the format of the resolved artifact; typically a MIME-type
Artifact.uri attribute an globally uniquer logical identifier for the artifact
Artifact.uriBucket attribute a short 5 letter code generated from the uri so that validation code can work in batches; the value must be generated from the Artifact.uri such that an artifact is always in the same bucket; the code could be generated by taking the first 5 characters from a checksum of the uri (5 hex chars gives up to 1 million buckets)
DeletedArtifactEvent objectType an entity used to signal/track deletion of an artifact
DeletedStorageLocationEvent objectType an entity used to signal/track deletion of a copy of an artifact at a storage site
Entity objectType base entity class to support persistence; entity attributes are generally set or updated by persistence implementations
Entity.id attribute globally unique identifier (primary key)
Entity.lastModified attribute timestamp of last modification of this entity; the timestamp is intended to be assigned and/or updated when the entity is stored (e.g. in a database); value can be null for new entities that have not been persisted
Entity.metaChecksum attribute metadata checksum of this entity; the URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56; value can be null for new entities that have not been persisted; the algorithm for computing the metadata checksum is the same as for CAOM and has been refactored into a common library
SiteLocation objectType location of an artifact at a site; instances are created and maintained in a global inventory
SiteLocation.site attribute reference to the site
StorageLocation objectType storage location of a file; instances are created and maintained in a storage site
StorageLocation.storageBucket attribute a short string code so that validation code can work in batches; this could be the same as the Artifact.uriBucket, it could be part of the Artifact.uri, or it could be a completely independent value generated by the storage system
StorageLocation.storageID attribute storage site/system internal identifier
StorageLocationEvent objectType an entity used to signal/track a new copy of an artifact at a storage site
StorageSite objectType description of a storage site
StorageSite.allowRead attribute site is configured to allow callers to get metadata and/or content of files
StorageSite.allowWrite attribute site is configured to allow callers to write and delete files and modify file metadata
StorageSite.name attribute common (display) name of a site
StorageSite.resourceID attribute resource identifier for the web service API of a site

4.Imported Models

This section lists the external models imported by the current data model. For each imported model we list URLs to the VO-DML and HTML representations and the prefix used for vodml-ids from inside the model.

4.1 ivoa

Model vodml-id ivoa
url https://www.ivoa.net/xml/VODML/IVOA-v1.vo-dml.xml
documentation url https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/ivoa/vo-dml/IVOA-v1.0.html