© RWTH Aachen University
© Karlsruhe Institute of Technology

Version: 1.0
Last Upate: 20.12.2023

About

This document specifies the Turntable API for Metadata Repositories. The Turntable API acts as a facade for (multiple) (metadata) repositories.

Target audience

This specification is targeted at people who:

  • build clients that should work with multiple (metadata) repositories.

About us

Research Data Management is part of the RWTH Aachen University.

Data Expoitation Methods (DEM), is part of the Scientific Computing Center (SCC), located at Karlsruhe Institute of Technology (KIT).

The MIT License (MIT)

Copyright © 2021 RWTH Aachen University

Copyright © 2021 Karlsruhe Institute of Technology

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Specification of the Interface

Forword

The interface implements the Digital Object Identifier Protocol (DOIP). It specifies one additional operation due to validate metadata documents. Implementation is based on SDK provided by DONA foundation.

Specification

The DataCite Schema (JSON Schema) is used for the metadata of the Digital Objects(DOs).

Authentication

Creating/Accessing digital objects may be restricted to authorized users only. For authentication and authorization JWT is supported right now.

Operations

This chapter describes the possible operations. It is splitted in two parts:

  • Basic Operations Operations which has to be implemented by all metadata repositories.
  • Extended Operations Operations which may be implemented by a metadata repository.

Basic Operations

All basic operations are specified in the specification published by DONA. If there are further requirements they will be mentioned here. Otherwise there are no further requirements.

0.DOIP/Op.Hello

0.DOIP/Op.Create

The service supports two different types of Digital Objects:

  1. Metadata Documents (JSON, JSON-LD, XML)
  2. Metadata Schema Documents (JSON-LD, JSON Schema, XSD)

Create a Metadata Document

While creating a metadata document the DO has to contain two elements:

  1. Serialization of metadata (DataCite Schema(JSON))
    • id = metadata
    • type = application/json
  2. Serialization of metadata document
    • id = document
    • type = application/ld+json | application/json | application/xml
(DataCite) Metadata

The dataCite metadata for creating a DO of a metadata document must contain the following fields:

  • titles
  • publisher
  • formats
  • relatedIdentifiers
    • IsDescribedBy
    • IsMetadataFor

Some fields are filled by server. See also here for further information.

formats

Defines the format of the metadata document

  • application/ld+json -> JSON LD
  • application/json -> JSON
  • application/xml -> XML
relatedIdentifiers

Identifier for

  • Schema Document -> type: IsDescribedBy
  • Digital Object(DO) -> type: IsMetadataFor

Many identifiers are supported. Most relevant are (in alphabetical order):

  • DOI
  • Handle
  • PURL
  • URL

Create a Schema/Application Profile

While creating a schema/AP the DO has to contain two elements:

  1. Serialization of metadata (DataCite Schema(JSON))
    • id = datacite
    • type = application/json
  2. Serialization of schema/AP
    • id = application_profile | schema
    • type = application/ld+json | application/json | application/xml
(DataCite) Metadata

The dataCite metadata for creating a DO of a schema/application profile must contain the following fields:

  • titles
  • publisher
  • formats

Some fields are filled by server. See also here for further information.

formats

Defines the format of the schema

  • application/ld+json -> Application Profile
  • application/json -> JSON Schema
  • application/xml -> XSD

0.DOIP/Op.Retrieve

0.DOIP/Op.Update

0.DOIP/Op.Delete

0.DOIP/Op.Search

0.DOIP/Op.ListOperations

Extended Operations

0.DOIP/Op.Validation

This operation validates the provided metadata document with a registered schema. Attributes has to contain one property:

  1. schema/AP - Identifier of schema/AP

DO has to contain one element with the serialization of the metadata document:

  • id = document
  • type= application/ld+json | application/json | application/xml

Return

  • 0.DOIP/Status.001 - Validation was successful
  • 0.DOIP/Status.xxx - An error occurred.

DataCite Schema

Forword

The DataCite Metadata Schema defines a list of core metadata properties to enable an accurate and consistent identification of a resource for citation and retrieval purposes.(schema.datacite.org)

Specification

For describing the metadata documents and the metadata schema documents/application profiles the DataCite JSON schema is used. See examples on next pages for minimal DataCite JSON documents.

Metadata of a Metadata Document

The metadata or a metadata document may contain the following fields:

EntryDescription
identifiersIdentifier of the DO
creatorsCreator of the DO
titlesTitle of the DO
publisherPublisher of the DO
publicationYearPublication year of the DO
formatsMimetype of the content.
relatedIdentifiersRelated DOs.
Mandatory relation types:
- IsMetadataFor: Identifier of the data
- IsDescribedBy: Identifier of the schema/AP
schemaVersionexpected value: "http://datacite.org/schema/kernel-4"

Metadata of a Schema Document / Application Profile

The metadata or a schema document/application profile may contain the following fields:

EntryDescription
identifiersIdentifier of the DO
creatorsCreator of the DO
titlesTitle of the DO
publisherPublisher of the DO
publicationYearPublication year of the DO
formatsMimetype of the content.
schemaVersionexpected value: "http://datacite.org/schema/kernel-4"

Examples

On the following pages you'll find two examples:

  • Create a Schema/Application Profile
  • Create a Metadata Document

Create a Schema/Application Profile

While creating a schema/AP the DO has to contain two elements:

  1. Serialization of metadata (DataCite (JSON))
    • id = metadata
    • type = application/json
  2. Serialization of schema/AP
    • id = application_profile | schema
    • type = application/ld+json | application/json | application/xml

Metadata

EntryProvidedMandatoryDescription
identifiersnonoWill be intantiated by the server
creatorsyesnoIf no creator is provided it will be filled with the entry found in authentication
titlesyesyesTitle of the schema/application profile
publisheryesyesPublisher of the schema/application profile
publicationYearyesnoIf not provided actual year will be set
formatsyesyesMimetype of the content.
Possible values:
- application/ld+json
- application/json
- application/xml
schemaVersionyesnoIf not provided actual kernel version will be set

formats

Defines the format of the schema

  • application/ld+json -> Application Profile
  • application/json -> JSON Schema
  • application/xml -> XSD

Minimal DataCite Example (Ingesting an XSD document)

The DataCite metadata must contain the following fields:

{
  "identifiers": [
    {
      "identifierType": "URL",
      "identifier": "https://example.org/metastore/metadata/identifier"
    }
  ],
  "creators": [
    {
      "name": "Smith, Jane"
    }
  ],
  "titles": [
    {
      "title": "Minimal example for a(n) (XSD) schema document"
    }
  ],
  "publisher": "NFDI4Ing",
  "publicationYear": "2021",
  "formats": [
    "application/xml"
  ],
  "types": {
    "resourceTypeGeneral": "Other",
    "resourceType": "XML"
  },
  "schemaVersion": "http://datacite.org/schema/kernel-4"
}

Create a Metadata Document

While creating a metadata document the DO has to contain two elements:

  1. Serialization of metadata (DataCite (JSON))
    • id = metadata
    • type = application/json
  2. Serialization of metadata (document)
    • id = document
    • type = application/ld+json | application/json | application/xml

Metadata

EntryProvidedMandatoryDescription
identifiersnonoWill be intantiated by the server
creatorsyesnoIf no creator is provided it will be filled with the entry found in authentication
titlesyesyesTitle of the metadata document
publisheryesyesPublisher of the metadata document
publicationYearyesnoIf not provided actual year will be set
formatsyesyesMimetype of the content.
Possible values:
- application/ld+json
- application/json
- application/xml
relatedIdentifiersyesyes (both)Related DOs.
Supported relation types:
- IsMetadataFor: Identifier of the data
- IsDescribedBy: Identifier of the schema/AP
schemaVersionyesnoIf not provided actual kernel version will be set

formats

Defines the format of the schema

  • application/ld+json -> JSON LD
  • application/json -> JSON
  • application/xml -> XSD

Minimal DataCite Examples (Ingesting an XML document)

The DataCite metadata must contain the following fields:

{
  "identifiers": [
    {
      "identifierType": "URL",
      "identifier": "https://example.org/metastore/metadata/identifier"
    }
  ],
  "creators": [
    {
      "name": "Smith, Jane"
    }
  ],
  "titles": [
    {
      "title": "Minimal example for a(n) (XML) metadata document"
    }
  ],
  "publisher": "NFDI4Ing",
  "publicationYear": "2021",
  "formats": [
    "application/xml"
  ],
  "types": {
    "resourceTypeGeneral": "Other",
    "resourceType": "XML"
  },
  "relatedIdentifiers": [
    {
      "relatedIdentifier": "https://example.org/datarepository/identifier",
      "relatedIdentifierType": "URL",
      "relationType": "IsMetadataFor",
    }, 
    {
      "relatedIdentifier": "https://example.org/metastore/schema/identifier",
      "relatedIdentifierType": "URL",
      "relationType": "IsDescribedBy",
    }
  ],
  "schemaVersion": "http://datacite.org/schema/kernel-4"
}

DOIP

DataCite