Skip to end of banner
Go to start of banner

Structural Metadata: Tree Navigation

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Current »

Introduction

Using the structural metadata for tree navigation one can fetch the (direct) children of a record or get the grandparents of a record.

Reference Codes & Has (Non Representation) Children

  • The metadata field Structural.ReferenceCodes is an ordered multi-item field (see Complex Fields) containing the record IDs from the parents, starting from the oldest / first.

{
   "Structural": {
      "ReferenceCodes": {
         "Series": ["3e3b17c058b14ed79095c7fc9c4af88848bd7afbc5294c19a214625a5a5d3d7d"],
         "Dossier": ["6b83485cfe1f48729ab493f912b2c7cc6336afdc597843e7bcaf664abd209043"],
         "Document":["120b5fe7f7a346bca277e13988ed96224f40330432584955b6e33b524321dff5"]
      }
   }
}
  • Once a record obtains its first child the field HasChildren will be true for the parent. Even if the child is later permanently deleted, the field HasChildren will be true forever on the parent.

  • Data objects, e.g., the record type Media, always have HasChildren set to true because it has direct (grand)children representations. In order to know whether the data object has other data objects that are children, e.g. emails with attachments, a new field HasNonRepresentationChildren has been introduced in version 23.4.

Navigation

From child to parent

  • The metadata field ParentRecordId provides the RecordId of its parent → Metadata Fields

  • For representations, the metadata field DataRecordId provides the RecordId of the data record to which it belongs

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

  • For representations, the metadata field DataRecordId provides the RecordId of the data record to which it belongs

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>

  • Example all (grand)children of particular Series: +Structural.ReferenceCodes.Series:3e3b17...

  • No labels