commonmeta 0.9.6

Library for conversions to/from the Commonmeta scholarly metadata format
Documentation
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://orcid.org/schemas/person/3.0",
  "title": "ORCID 3.0 Person",
  "description": "JSON Schema for the ORCID 3.0 /person API endpoint response, derived from the ORCID 3.0 XSD types (person-3.0.xsd, personal-details-3.0.xsd, common-3.0.xsd, etc.)",
  "type": "object",
  "required": ["path"],
  "properties": {
    "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
    "name":               { "$ref": "#/definitions/NullableName" },
    "other-names":        { "$ref": "#/definitions/OtherNames" },
    "biography":          { "$ref": "#/definitions/NullableBiography" },
    "researcher-urls":    { "$ref": "#/definitions/ResearcherUrls" },
    "emails":             { "$ref": "#/definitions/Emails" },
    "addresses":          { "$ref": "#/definitions/Addresses" },
    "keywords":           { "$ref": "#/definitions/Keywords" },
    "external-identifiers": { "$ref": "#/definitions/PersonExternalIdentifiers" },
    "path": { "type": "string" }
  },
  "definitions": {
    "DateValue": {
      "description": "Epoch-millisecond timestamp (xs:dateTime encoded as integer).",
      "type": "object",
      "required": ["value"],
      "properties": {
        "value": { "type": "integer" }
      }
    },
    "NullableDateValue": {
      "oneOf": [
        { "$ref": "#/definitions/DateValue" },
        { "type": "null" }
      ]
    },
    "StringValue": {
      "description": "Single-value wrapper used for given-names, family-name, credit-name, country, etc.",
      "type": "object",
      "required": ["value"],
      "properties": {
        "value": { "type": "string" }
      }
    },
    "NullableStringValue": {
      "oneOf": [
        { "$ref": "#/definitions/StringValue" },
        { "type": "null" }
      ]
    },
    "Visibility": {
      "description": "ORCID visibility scope (common:VisibilityType in the XSD).",
      "type": ["string", "null"],
      "enum": ["public", "limited", "registered-only", "private", null]
    },
    "OrcidId": {
      "description": "ORCID identifier triple (common:OrcidIdBase).",
      "type": ["object", "null"],
      "properties": {
        "uri":  { "type": "string", "format": "uri" },
        "path": { "type": "string" },
        "host": { "type": "string" }
      }
    },
    "Source": {
      "description": "Provenance block attached to put-items (common:Source).",
      "type": ["object", "null"],
      "properties": {
        "source-orcid":               { "$ref": "#/definitions/OrcidId" },
        "source-client-id":           { "$ref": "#/definitions/OrcidId" },
        "source-name":                { "$ref": "#/definitions/NullableStringValue" },
        "assertion-origin-orcid":     { "$ref": "#/definitions/OrcidId" },
        "assertion-origin-client-id": { "$ref": "#/definitions/OrcidId" },
        "assertion-origin-name":      { "$ref": "#/definitions/NullableStringValue" }
      }
    },
    "PutItemFields": {
      "description": "Fields present on every put-item (put-code, display-index, visibility, path, source, created-date, last-modified-date).",
      "properties": {
        "put-code":         { "type": "integer" },
        "display-index":    { "type": "integer" },
        "visibility":       { "$ref": "#/definitions/Visibility" },
        "path":             { "type": "string" },
        "source":           { "$ref": "#/definitions/Source" },
        "created-date":     { "$ref": "#/definitions/NullableDateValue" },
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" }
      }
    },
    "Name": {
      "description": "Personal name record (personal-details:NameType).",
      "type": "object",
      "properties": {
        "created-date":       { "$ref": "#/definitions/NullableDateValue" },
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
        "given-names":        { "$ref": "#/definitions/NullableStringValue" },
        "family-name":        { "$ref": "#/definitions/NullableStringValue" },
        "credit-name":        { "$ref": "#/definitions/NullableStringValue" },
        "other-names":        { "$ref": "#/definitions/NullableOtherNames" },
        "source":             { "$ref": "#/definitions/Source" },
        "visibility":         { "$ref": "#/definitions/Visibility" },
        "path":               { "type": "string" }
      }
    },
    "NullableName": {
      "oneOf": [
        { "$ref": "#/definitions/Name" },
        { "type": "null" }
      ]
    },
    "OtherName": {
      "description": "Alternate name for the researcher (other-name:OtherName).",
      "type": "object",
      "required": ["content"],
      "allOf": [{ "$ref": "#/definitions/PutItemFields" }],
      "properties": {
        "content": { "type": "string" }
      }
    },
    "OtherNames": {
      "description": "Container for other-name elements (other-name:OtherNamesType).",
      "type": "object",
      "required": ["other-name"],
      "properties": {
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
        "other-name": {
          "type": "array",
          "items": { "$ref": "#/definitions/OtherName" }
        },
        "path": { "type": "string" }
      }
    },
    "NullableOtherNames": {
      "oneOf": [
        { "$ref": "#/definitions/OtherNames" },
        { "type": "null" }
      ]
    },
    "Biography": {
      "description": "Free-text biography block (biography:BiographyType).",
      "type": "object",
      "properties": {
        "created-date":       { "$ref": "#/definitions/NullableDateValue" },
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
        "content":    { "type": ["string", "null"] },
        "visibility": { "$ref": "#/definitions/Visibility" },
        "path":       { "type": "string" }
      }
    },
    "NullableBiography": {
      "oneOf": [
        { "$ref": "#/definitions/Biography" },
        { "type": "null" }
      ]
    },
    "ResearcherUrl": {
      "description": "A single researcher URL (researcher-url:ResearcherUrl).",
      "type": "object",
      "required": ["url-name", "url"],
      "allOf": [{ "$ref": "#/definitions/PutItemFields" }],
      "properties": {
        "url-name": { "type": "string" },
        "url":      { "$ref": "#/definitions/StringValue" }
      }
    },
    "ResearcherUrls": {
      "description": "Container for researcher URLs (researcher-url:ResearcherUrlsType).",
      "type": "object",
      "required": ["researcher-url"],
      "properties": {
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
        "researcher-url": {
          "type": "array",
          "items": { "$ref": "#/definitions/ResearcherUrl" }
        },
        "path":       { "type": "string" },
        "visibility": { "$ref": "#/definitions/Visibility" }
      }
    },
    "Email": {
      "description": "A verified email address (email:Email).",
      "type": "object",
      "required": ["email"],
      "allOf": [{ "$ref": "#/definitions/PutItemFields" }],
      "properties": {
        "email":    { "type": "string", "format": "email" },
        "primary":  { "type": "boolean" },
        "verified": { "type": "boolean" }
      }
    },
    "Emails": {
      "description": "Container for email elements (email:EmailsType).",
      "type": "object",
      "required": ["email"],
      "properties": {
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
        "email": {
          "type": "array",
          "items": { "$ref": "#/definitions/Email" }
        },
        "path":       { "type": "string" },
        "visibility": { "$ref": "#/definitions/Visibility" }
      }
    },
    "Address": {
      "description": "A registered country/address (address:Address).",
      "type": "object",
      "required": ["country"],
      "allOf": [{ "$ref": "#/definitions/PutItemFields" }],
      "properties": {
        "country": { "$ref": "#/definitions/StringValue" }
      }
    },
    "Addresses": {
      "description": "Container for address elements (address:AddressesType).",
      "type": "object",
      "required": ["address"],
      "properties": {
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
        "address": {
          "type": "array",
          "items": { "$ref": "#/definitions/Address" }
        },
        "path":       { "type": "string" },
        "visibility": { "$ref": "#/definitions/Visibility" }
      }
    },
    "Keyword": {
      "description": "A self-reported keyword (keyword:Keyword).",
      "type": "object",
      "required": ["content"],
      "allOf": [{ "$ref": "#/definitions/PutItemFields" }],
      "properties": {
        "content": { "type": "string" }
      }
    },
    "Keywords": {
      "description": "Container for keyword elements (keyword:KeywordsType).",
      "type": "object",
      "required": ["keyword"],
      "properties": {
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
        "keyword": {
          "type": "array",
          "items": { "$ref": "#/definitions/Keyword" }
        },
        "path":       { "type": "string" },
        "visibility": { "$ref": "#/definitions/Visibility" }
      }
    },
    "ExternalIdRelationship": {
      "description": "external-identifier:ExternalIdRelationship",
      "type": "string",
      "enum": ["self", "part-of", "funded-by", "version-of"]
    },
    "ExternalIdNormalized": {
      "type": ["object", "null"],
      "properties": {
        "value":     { "type": "string" },
        "transient": { "type": "boolean" }
      }
    },
    "PersonExternalIdentifier": {
      "description": "A single external identifier (external-identifier:PersonExternalIdentifier).",
      "type": "object",
      "required": ["external-id-type", "external-id-value"],
      "allOf": [{ "$ref": "#/definitions/PutItemFields" }],
      "properties": {
        "external-id-type":             { "type": "string" },
        "external-id-value":            { "type": "string" },
        "external-id-normalized":       { "$ref": "#/definitions/ExternalIdNormalized" },
        "external-id-normalized-error": { "type": ["object", "null"] },
        "external-id-url":              { "$ref": "#/definitions/NullableStringValue" },
        "external-id-relationship":     { "$ref": "#/definitions/ExternalIdRelationship" }
      }
    },
    "PersonExternalIdentifiers": {
      "description": "Container for person external identifiers (external-identifier:PersonExternalIdentifiersType).",
      "type": "object",
      "required": ["external-identifier"],
      "properties": {
        "last-modified-date": { "$ref": "#/definitions/NullableDateValue" },
        "external-identifier": {
          "type": "array",
          "items": { "$ref": "#/definitions/PersonExternalIdentifier" }
        },
        "path":       { "type": "string" },
        "visibility": { "$ref": "#/definitions/Visibility" }
      }
    }
  }
}