Skip to content

CRYSTALIA-DATAMODEL

metamodel version: 1.7.0

version: None

Data model for the Crystalia dataset annotation model

Class Diagram

class_diagram

ERD Diagram

erd_diagram

Base Classes

Foundational classes in the hierarchy (root classes and direct children of Thing):

Class Description
DescribableThing An item that can be described by one or more descriptors. Could be an item(file) or another descriptor
DescriptorType Details about a descriptor type
Method A method used to generate a descriptor
Thing Anything that has an id

Classes

DescribableThing

An item that can be described by one or more descriptors. Could be an item(file) or another descriptor

YAML Definition

Click to expand
DescribableThing:
  is_a: Thing
  description: An item that can be described by one or more descriptors. Could be
    an item(file) or another descriptor
  slots:
  - id
  - hasDescriptor

class_describablething_erd

Attributes

Name Cardinality: Type Description
id 1..1 uriorcurie A unique identifier
hasDescriptor 0..* Descriptor The descriptors associated with an item

Parents

  • Thing - Anything that has an id

Children

  • Descriptor - A descriptor for the whole or part of an item or another descriptor
  • Item - An individual item for example a file

Descriptor

A descriptor for the whole or part of an item or another descriptor

YAML Definition

Click to expand
Descriptor:
  is_a: DescribableThing
  description: A descriptor for the whole or part of an item or another descriptor
  slots:
  - id
  - hasDescriptor
  - hasType
  - value
  - offset
  - length
  - coverage
  - descriptor__label
  attributes:
    label:
      required: false
      description: A human-readable label

class_descriptor_erd

Attributes

Name Cardinality: Type Description
id 1..1 uriorcurie A unique identifier
hasDescriptor 0..* Descriptor The descriptors associated with an item
coverage 1..1 float The coverage of the descriptor (0.0 to 1.0)
hasType 1..1 DescriptorType The type of the descriptor
label 0..1 string A human-readable label
length 0..1 integer The length of the data described by the descriptor
offset 1..1 integer The starting offset for partial file descriptors
value 1..1 string The value of the descriptor

Parents

  • DescribableThing - An item that can be described by one or more descriptors. Could be an item(file) or another descriptor

Referenced by:

DescriptorType

Details about a descriptor type

YAML Definition

Click to expand
DescriptorType:
  is_a: Thing
  description: Details about a descriptor type
  slots:
  - id
  - label
  - usesMethod
  - max_block_size

class_descriptortype_erd

Attributes

Name Cardinality: Type Description
id 1..1 uriorcurie A unique identifier
label 1..1 string A human-readable label for the item, most often the filename
max_block_size 0..1 integer The maximum size of the block of data described by the descriptor
usesMethod 1..1 Method The method used to generate the descriptor

Parents

  • Thing - Anything that has an id

Referenced by:

Item

An individual item for example a file

YAML Definition

Click to expand
Item:
  is_a: DescribableThing
  description: An individual item for example a file
  slots:
  - id
  - hasDescriptor
  - label
  - isPartOf

class_item_erd

Attributes

Name Cardinality: Type Description
id 1..1 uriorcurie A unique identifier
hasDescriptor 0..* Descriptor The descriptors associated with an item
isPartOf 0..1 uriorcurie The items in the dataset such as files
label 1..1 string A human-readable label for the item, most often the filename

Parents

  • DescribableThing - An item that can be described by one or more descriptors. Could be an item(file) or another descriptor

Method

A method used to generate a descriptor

YAML Definition

Click to expand
Method:
  is_a: Thing
  description: A method used to generate a descriptor
  slots:
  - id
  - label
  - comment
  - robustness

class_method_erd

Attributes

Name Cardinality: Type Description
id 1..1 uriorcurie A unique identifier
comment 0..1 string A description of the item
label 1..1 string A human-readable label for the item, most often the filename
robustness 1..1 DescriptorRobustness The robustness category of the descriptor type

Parents

  • Thing - Anything that has an id

Referenced by:

Thing

Anything that has an id

YAML Definition

Click to expand
Thing:
  description: Anything that has an id
  slots:
  - id

Local class diagram

class_thing_local

Attributes

Name Cardinality: Type Description
id 1..1 uriorcurie A unique identifier

Children

  • DescribableThing - An item that can be described by one or more descriptors. Could be an item(file) or another descriptor
  • DescriptorType - Details about a descriptor type
  • Method - A method used to generate a descriptor

Slots

Name Cardinality/Range Used By
id
A unique identifier
1..1
uriorcurie
DescribableThing, Descriptor, DescriptorType, Item, Method, Thing
comment
A description of the item
0..1
string
Method
coverage
The coverage of the descriptor (0.0 to 1.0)
1..1
float
Descriptor
descriptor__label
A human-readable label
0..1
string
hasDescriptor
The descriptors associated with an item
0..*
Descriptor
DescribableThing, Descriptor, Item
hasType
The type of the descriptor
1..1
DescriptorType
Descriptor
isPartOf
The items in the dataset such as files
0..1
uriorcurie
Item
label
A human-readable label for the item, most often the filename
1..1
string
Descriptor, DescriptorType, Item, Method
length
The length of the data described by the descriptor
0..1
integer
Descriptor
max_block_size
The maximum size of the block of data described by the descriptor
0..1
integer
DescriptorType
offset
The starting offset for partial file descriptors
1..1
integer
Descriptor
robustness
The robustness category of the descriptor type
1..1
DescriptorRobustness
Method
usesMethod
The method used to generate the descriptor
1..1
Method
DescriptorType
value
The value of the descriptor
1..1
string
Descriptor

Enums

DescriptorRobustness

Degree of resilience of the descriptor to changes in the item

Text Meaning: Description
EXTREMELY_HIGH None Descriptor is extremely resilient to changes (e.g., SHA512 sum)
HIGH None Descriptor is highly resilient to changes (e.g., Farmhash, Jenkins hash)
LOW None Descriptor has low resilience to changes (e.g., length + date + name together)
MODERATE None Descriptor is moderately resilient to changes (e.g., CRC sum)
VERY_HIGH None Descriptor is very resilient to changes (e.g., MD5 sum)
VERY_LOW None Descriptor has very low resilience to changes (e.g., length, date or name individually)

Used by