Documentation

Edit metadata configuration

The metadata configuration defines which metadata data managers need to provide for all data sets associated with a theme. The metadata configuration futhermore contains so-called autofill rules and default values, which you can use to automate metadata entry almost entirely. When you create a theme, a default metadata configuration is provided. Only the system administrator can modify this default configuration, and it cannot be changed for public cloud deployments. If you use a private cloud instance, contact support for any desired changes.

To edit the metadata configuration, follow these steps as a logged in theme manager or organisation superuser:

  1. Go to «Themes»
  2. Pick the theme you’d like to edit the metadata configuration for
  3. Go to «Metadata»
  4. Modify the configuration in the text editor, as described below.

You define the metadata configuration via editing of a JSON object in an embedded, special-purpose text editor. This editor will automatically check whether the syntax and schema of your configuration file are valid, and provides an assistant for autofill rules.

In the JSON format, objects are defined by using curly braces {}, lists by using square brackets [], and strings are delimited by using double quotes "". All these characters appear pairwise to start and end a substructure, and need to be provided in the correct order. If this is not the case, the editor will display an Invalid JSON error.

At the top level, the metadata configuration is a list of category objects. We use category objects to structure inputs that belong to related metadata properties into groups in the user interface.

Every category has a list of field objects. Every field object describes how the input should look and behave in the user interface, what find of content is allowed, ans whether default values or derived values should be inserted. Edit the object to set the following properties:

  • name: A unique name for the field that needs to comply to the internal domain model (see below).
  • label: The label that should be displayed to the user next to the input field.
  • description: A longer, explanatory text for the fields that is displayed on hovering over the label.
  • type: The primitive type of data this field expects. One of string, object, array, integer and float.
  • schema: The schema or format of the value to be inserted. One of email, enum, geojson, json, wkt and csv.
  • defaultValue: A fixed default value that will always be assigned to the field.
  • autofillRule: A dynamic default value that will be assigned to the field. This value is calculated from the current environment variables such as the user, the organisation context, the data set and the theme. When you click into a row with an autofillRule property key, an assistant for choosing a value appears in the upper right corner of the editor.
  • required: Set to true if a type and schema compliant value must be provided.
  • editable: Set totrue when the data manager should be able to edit the value in this field.
  • minOccurs: Defines the minimum count of valid values for this input.
  • maxOccurs: Defines the maximum count of valid values for this input.
  • targets: This is a list with mapping rules to external services, such as metadata catalogues. By default, there should always be at least a bsp target defined. bsp is the internal service publisher.

The following paths can be used for the name and target fields:

  • md-dataset.citation.title
  • md-dataset.identification.*
    • md-dataset.identification.abstract
    • md-dataset.identification.keyword_inspire
    • md-dataset.identification.keyword_simple
    • md-dataset.identification.topicCategory
    • md-dataset.identification.geographicExtent.eastBoundLongitude
    • md-dataset.identification.geographicExtent.northBoundLatitude
    • md-dataset.identification.geographicExtent.southBoundLatitude
    • md-dataset.identification.geographicExtent.westBoundLongitude
    • md-dataset.identification.topicCategory
    • md-dataset.identification.constraints.useLimitations
    • md-dataset.identification.constraints.useConstraints
    • md-dataset.identification.constraints.accessContraints
    • md-dataset.identification.contactForResource.*
      • md-dataset.identification.contactForResource.individualName
      • md-dataset.identification.contactForResource.authorityUrl
      • md-dataset.identification.contactForResource.organisationName
      • md-dataset.identification.contactForResource.positionName
      • md-dataset.identification.contactForResource.roleCode
      • md-dataset.identification.contactForResource.email
      • md-dataset.identification.contactForResource.deliveryPoint
      • md-dataset.identification.contactForResource.postalCode
      • md-dataset.identification.contactForResource.city
      • md-dataset.identification.contactForResource.administrativeArea
      • md-dataset.identification.contactForResource.country
      • md-dataset.identification.contactForResource.voicePhone
      • md-dataset.identification.contactForResource.facsimile
  • md-dataset.contactForMetadata.*
    • md-dataset.contactForMetadata.individualName
    • md-dataset.contactForMetadata.authorityUrl
    • md-dataset.contactForMetadata.organisationName
    • md-dataset.contactForMetadata.positionName
    • md-dataset.contactForMetadata.roleCode
    • md-dataset.contactForMetadata.email
    • md-dataset.contactForMetadata.deliveryPoint
    • md-dataset.contactForMetadata.postalCode
    • md-dataset.contactForMetadata.city
    • md-dataset.contactForMetadata.administrativeArea
    • md-dataset.contactForMetadata.country
    • md-dataset.contactForMetadata.voicePhone
    • md-dataset.contactForMetadata.facsimile
  • md-dataset.fileidentifier
  • md-dataset.mdIdentifierLocalId
  • md-dataset.mdIdentifierNamespace

Example configuration excerpt

[
    {
        "categoryName": "general",
        "title": "Allgemeine Angaben",
        "name": "general",
        "fields": [
            {
                "name": "md-dataset.citation.title",
                "required": true,
                "minOccurs": 1,
                "maxOccurs": 1,
                "comment": "ISO 3.2.1 #360",
                "label": "Datensatz-Titel",
                "description": "Bezeichnung, unter der der Datensatz bekannt ist",
                "type": "string",
                "schema": null,
                "defaultValue": null,
                "autofillRule": "",
                "editable": true,
                "targets": {
                    "bsp": "md-dataset.citation.title"
                }
            },
            {
                "name": "md-dataset.identification.abstract",
                "required": true,
                "minOccurs": 1,
                "maxOccurs": 1,
                "comment": "ISO B2.2.1 #24",
                "label": "Kurzbeschreibung Datensatz",
                "description": "kurze, beschreibende Zusammenfassung des Datensatzes",
                "type": "string",
                "schema": null,
                "defaultValue": null,
                "autofillRule": null,
                "editable": true,
                "targets": {
                    "bsp": "md-dataset.identification.abstract"
                }
            }
        ]
    } 
]