Skip to main content
Skip table of contents

UC Defining Dependent Metadata Fields [C IG]

Motivation

It may be that within your current metadata schema, you may want to define that certain fields (1) become available/unavailable based on another field’s (2) choice. This form of relationship can be seen as dependency and greatly simplify an end user’s approach when it comes to metadata value input.

Example

When choosing a specific value from a dropdown (enum metdata type field) such as a country’s state (1), another metadata field (2) may restrict which values are made available in another field such as the cities available within that state.

The following example is taken from MediaPortal’s UI, specifically an asset’s metadata tab:

Resources

Via API

The necessary resources can be found here:

Metadata datasets — Vidispine REST API documentation

How to

Via API

The necessary steps for accomplishing the use case can be found in this article. Check the documentation for “Metadata datasets“ here:

Metadata datasets — Vidispine REST API documentation

Via ConfigPortal

System administrators with access to ConfigPortal can set existing metadata in a dependency relationship.

A detailed explanation on how to configure data sets in ConfigPortal can be found here:

ConfigPortal supports the creation and editing of data sets. With a data set, users are able to create dependent enums.


As an example, one enum containing the "series" and another one, containing possible values. A relationship between both enums can be created in which values in the form of series genres are assigned to "series". If these data sets are later used in UIs, which also support data sets, the selection in the "parent" enum will affect the available values in the "child" enum.



Clicking on the "Plus" button allows users to enter additional "child" metadata.
Users are also able to specify the order in which the "child" metadata values appear under the "parent" via drag and drop.


Setting Dependencies

If a parent dependency wants to be set for the particular metadata, users can select the "set dependencies options.



Users are then able to select an existing metadata data set as the parent in the dependency relationship.



Please note that the selection of metadata is specific to those of the data set type and only as the parent and only in that order. If a user wants to set a particular metadata field as a child, they must first search and select the desired child metadata and set their parent dependency.

EXAMPLE
Having selected the metadata dependencies for "Country", one can see that the Parent Metadata is set to "NIL". This implies that there are no other metadata fields that are hierarchically above country.
The enum data set values for "Country" are "Germany", "Malaysia", and "USA".
Under Child Metadata, users can see the "State" field. Enum data set values of the type "State" have been assigned to specific values for the enum data set "Country". Germany, a country, displays different states:

By clicking on the hyperlinked field, users can then be redirected to the field and any particular dependencies that field may have. As expected, the Parent Metadata for "State" is "Country".


If the dependencies of a parent metadata are displayed, one is able to see one or more child dependencies. If several are available, one can also select which children to show.

Support of Multiple Child Relationships

Datasets (dependent enums) also support the definition of multiple child-dependencies. Under Metadata Field, users are able to set several metadata fields as dependent to a parent field.
If the dependencies of a parent metadata are displayed, one is able to see one or more child dependencies. If several are available, one can also select which children to show.
If several children have the same parent dependency and a value in the dependent parent dropdown was selected, only matching values for both children will be available in drop-down.





JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.