JSON Schema

JSON Schema

⚠️

The JSON Schema is under active development and not considered stable until version 1.0.

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://commonmeta.org/commonmeta_v0.9.1.json",
  "title": "Commonmeta v0.9.1",
  "description": "JSON representation of the Commonmeta schema.",
  "additionalProperties": false,
  "definitions": {
    "affiliations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "format": "uri" },
          "name": { "type": "string" }
        },
        "required": ["name"]
      },
      "uniqueItems": true
    },
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "geoLocationPoint": {
      "type": "object",
      "properties": {
        "pointLongitude": { "$ref": "#/definitions/longitude" },
        "pointLatitude": { "$ref": "#/definitions/latitude" }
      },
      "required": ["pointLongitude", "pointLatitude"]
    }
  },
  "type": "object",
  "properties": {
    "id": {
      "description": "The unique identifier for the resource.",
      "type": "string",
      "format": "uri",
      "pattern": "^https?://"
    },
    "type": {
      "description": "The type of the resource.",
      "enum": [
        "Article",
        "Audiovisual",
        "BookChapter",
        "BookSeries",
        "Book",
        "Component",
        "Dataset",
        "Dissertation",
        "Document",
        "Grant",
        "Instrument",
        "JournalArticle",
        "JournalIssue",
        "JournalVolume",
        "Journal",
        "PeerReview",
        "PhysicalObject",
        "ProceedingsArticle",
        "ProceedingsSeries",
        "Proceedings",
        "ReportComponent",
        "ReportSeries",
        "Report",
        "Software",
        "Other"
      ]
    },
    "additional_type": {
      "description": "The additional type of the resource.",
      "type": "string"
    },
     
    "url": {
      "description": "The URL of the resource.",
      "type": "string",
      "format": "uri"
    },
    "creators": {
      "description": "The creators of the resource.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for the creator.",
            "type": "string",
            "format": "uri"
          },
          "type": {
            "description": "The type of the creator.",
            "type": "string",
            "enum": ["Organization", "Person"]
          },
          "name": {
            "description": "The name of the creator.",
            "type": "string"
          },
          "givenName": {
            "description": "The given name of the creator.",
            "type": "string"
          },
          "familyName": {
            "description": "The family name of the creator.",
            "type": "string"
          },
          "affiliation": { "$ref": "#/definitions/affiliations" }
        }
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "publisher": {
      "description": "The publisher of the resource.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The identifier for the publisher.",
          "type": "string"
        },
        "name": {
          "description": "The name of the publisher.",
          "type": "string"
        }
      },
      "required": ["name"]
    },
    "date": {
      "description": "The dates for the resource.",
      "type": "object",
      "format": "date"
    },
    "titles": {
      "description": "The titles of the resource.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "description": "The title of the resource.",
            "type": "string"
          },
          "type": {
            "description": "The type of the title.",
            "type": "string",
            "enum": ["AlternativeTitle", "Subtitle", "TranslatedTitle"]
          }
        },
        "required": ["title"]
      }
    },
    "container": {
      "description": "The container of the resource.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The identifier for the container.",
          "type": "string"
        },
        "type": {
          "description": "The type of the container.",
          "type": "string",
          "enum": ["Book", "BookSeries", "Journal", "Periodical", "ProceedingsSeries", "Series"]
        },
        "title": {
          "description": "The title of the container.",
          "type": "string"
        }
      }
    },
    "contributors": {
      "description": "The contributors to the resource.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for the contributor.",
            "type": "string"
          },
          "type": {
            "description": "The type of the contributor.",
            "type": "string",
            "enum": ["Organization", "Person"]
          },
          "name": {
            "description": "The name of the contributor.",
            "type": "string"
          },
          "givenName": {
            "description": "The given name of the contributor.",
            "type": "string"
          },
          "familyName": {
            "description": "The family name of the contributor.",
            "type": "string"
          },
          "affiliation": { "$ref": "#/definitions/affiliations" }
        }
      }
    },
    "subjects": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "subject": { "type": "string" }
        },
        "required": ["subject"]
      },
      "uniqueItems": true
    },
    "sizes": {
      "description": "The sizes of the resource.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "formats": {
      "description": "The formats of the resource.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "language": {
      "description": "The language of the resource. Use one of the language codes from the IETF BCP 47 standard.",
      "type": "string"
    },
    "license": {
      "description": "The license for the resource. Use one of the SPDX license identifiers.",
      "type": "object",
      "properties": {
        "id": { "type": "string" },
        "url": { "type": "string", "format": "uri" }
      }
    },
    "version": {
      "description": "The version of the resource.",
      "type": "string"
    },
    "references": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": { "type": "string" },
          "doi": { "type": "string" },
          "creator": { "type": "string" },
          "title": { "type": "string" },
          "publisher": { "type": "string" },
          "publicationYear": { "type": "string" },
          "volume": { "type": "string" },
          "issue": { "type": "string" },
          "firstPage": { "type": "string" },
          "lastPage": { "type": "string" },
          "containerTitle": { "type": "string" },
          "edition": { "type": "string" },
          "contributor": { "type": "string" },
          "unstructured": { "type": "string" }
        },
        "required": ["key"]
      },
      "uniqueItems": true
    },
    "funding_references": {
      "description": "The funding references for the resource.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "funderIdentifier": { "type": "string" },
          "funderIdentifierType": {
            "type": "string",
            "enum": [
              "Crossref Funder ID",
              "ROR",
              "GRID",
              "ISNI",
              "Ringgold",
              "Other"
            ]
          },
          "funderName": { "type": "string" },
          "awardNumber": { "type": "string" },
          "award_uri": { "type": "string", "format": "uri" }
        },
        "required": ["funderName"]
      }
    },
    "descriptions": {
      "description": "The descriptions of the resource.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "description": "The description of the resource.",
            "type": "string"
          },
          "type": {
            "description": "The type of the description.",
            "type": "string",
            "enum": ["Abstract", "Description", "Summary"]
          }
        },
        "required": ["description"]
      }
    },
    "geo_locations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "geoLocationPlace": { "type": "string" },
          "geoLocationPoint": { "$ref": "#/definitions/geoLocationPoint" },
          "geoLocationBox": {
            "type": "object",
            "properties": {
              "westBoundLongitude": { "$ref": "#/definitions/longitude" },
              "eastBoundLongitude": { "$ref": "#/definitions/longitude" },
              "southBoundLatitude": { "$ref": "#/definitions/latitude" },
              "northBoundLatitude": { "$ref": "#/definitions/latitude" }
            },
            "required": [
              "westBoundLongitude",
              "eastBoundLongitude",
              "southBoundLatitude",
              "northBoundLatitude"
            ]
          },
          "geoLocationPolygons": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "polygonPoints": {
                  "type": "array",
                  "items": { "$ref": "#/definitions/geoLocationPoint" },
                  "minItems": 4
                },
                "inPolygonPoint": { "$ref": "#/definitions/geoLocationPoint" }
              },
              "required": ["polygonPoints"]
            },
            "uniqueItems": true
          }
        }
      },
      "uniqueItems": true
    },
    "provider": {
      "description": "The provider of the resource. This can be a DOI registration agency or a repository.",
      "type": "string",
      "enum": ["Crossref", "DataCite", "GitHub", "JaLC", "KISTI", "mEDRA", "OP"]
    },
    "alternate_identifiers": {
      "description": "Alternate identifiers for the resource.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "alternateIdentifier": { "type": "string" },
          "alternateIdentifierType": { "type": "string" }
        },
        "required": ["alternateIdentifier", "alternateIdentifierType"]
      }
    },
    "content_url": {
      "description": "The URL of the content of the resource.",
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "schema_version": {
      "description": "The schema version of the resource.",
      "type": "string",
      "enum": [
        "http://datacite.org/schema/kernel-3",
        "http://datacite.org/schema/kernel-4"
      ]
    },
    "state": {
      "description": "The state of the resource.",
      "type": "string",
      "enum": ["findable", "not_found"]
    }
  },
  "required": ["id", "type", "url", "creators", "titles", "publisher", "date"]
}