Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For DigiHaven we have introduced a record tree with metadata inheritance, where metadata is inherited from the top of the tree , to the children below.

For MediaHaven 2.0 will be gradually moving from the flat structure to full tree structure as for DigiHaven as shown in the tree below

Tree

...

Glossary

...

Term

...

Explanation

...

Intellectual Object

...

An object in upper half of the tree that offers structure without corresponding to a file or representation below it, i.e. a classification, collection, dossier.

...

Data Object

...

An object that has a number of representations objects as direct children.

Business Logic

  • A record can have

    • no parent

      • top record such as a Series or Classification

      • orphaned record which can later be adopted.

    • exactly one parent

  • No loops are allowed within the tree

    • A record cannot be parent or child of itself

    • A record cannot be adopted by one of its (grand)children or (grand)parents

Inheritance

  • Metadata field definitions can be marked as inheriting.

  • When a record is created or adopted under a parent record, the inheriting metadata fields will be copied from the parent to the child record

  • When the metadata changes of a parent record then the changes made to inheriting metadata fields will propagate to its children asynchronously

Structural Metadata (from 21.1)

The structural metadata for record tree is encoded using metadata fields ReferenceCodes and ParentRecordId

From child to parent

The metadata field ParentRecordId provides the RecordId of its parent.

From child to grandparents

The field ReferenceCodes contains the full line of ancestors. The sub fields are in the exact order of the grandparents from top to bottom with as key the RecordType of the (grand)parent as value the RecordId of the (grand)parent.

Code Block
{
   "Structural": {
      "ReferenceCodes": {
         "Series": ["3e3b17c058b14ed79095c7fc9c4af88848bd7afbc5294c19a214625a5a5d3d7d"],
         "Dossier": ["6b83485cfe1f48729ab493f912b2c7cc6336afdc597843e7bcaf664abd209043"],
         "Document":["120b5fe7f7a346bca277e13988ed96224f40330432584955b6e33b524321dff5"]
      }
   }
}

From parent to direct children

  • Make a search request on the field ParentRecordId

  • Form +Structural.ParentRecordId:<my RecordId>

  • Example +Structural.ParentRecordId:3e3b17...

From parent to all (grand)children

...

Make a search request using the matching sub field of ReferenceCodes

...

Form +Structural.ReferenceCodes.<my RecordType>:<my RecordId>

...

Over time our MediaHaven application has adopted the record tree and as of version 24.1, it will have fully completed the transition by switching to the Data Objects for new customers.

Overview

Record Trees provides a high-level description of the different trees used in our applications. The organisation of records into record trees is achieved by defining properties on theirRecord Types. In Record Tree Glossary we provide an overview of several technical terms used to describe the record trees.

Metadata

The organisation of records into record trees is visible in their metadata through the Structural Metadata. Metadata can flow through the record tree from top to bottom using Metadata Inheritance.