{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "AccessRight": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "Description of code"
        },
        "label": {
          "type": "string",
          "description": "Description of label"
        },
        "scheme": {
          "type": "string",
          "description": "Description of scheme"
        }
      }
    },
    "ControlledField": {
      "type": "object",
      "properties": {
        "scheme": {
          "type": "string",
          "description": "Description of scheme"
        },
        "value": {
          "type": "string",
          "description": "Description of value"
        }
      }
    },
    "KeyValue": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "Description of key"
        },
        "value": {
          "type": "string",
          "description": "Description of value"
        }
      }
    },
    "Provenance": {
      "type": "object",
      "properties": {
        "provenance": {
          "type": "string",
          "description": "Description of provenance"
        },
        "trust": {
          "type": "string",
          "description": "Description of trust"
        }
      }
    }
  },
  "type": "object",
  "properties": {
    "author": {
      "description": "Description of author",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "affiliation": {
            "description": "Description of affiliation",
            "type": "array",
            "items": {
              "type": "string",
              "description": "Description of affiliation"
            }
          },
          "fullname": {
            "type": "string",
            "description": "Description of fullname"
          },
          "name": {
            "type": "string",
            "description": "Description of name"
          },
          "pid": {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "$ref": "#/definitions/ControlledField"
                  },
                  {
                    "description": "Description of id"
                  }
                ]
              },
              "provenance": {
                "allOf": [
                  {
                    "$ref": "#/definitions/Provenance"
                  },
                  {
                    "description": "Description of provenance"
                  }
                ]
              }
            },
            "description": "Description of pid"
          },
          "rank": {
            "type": "integer",
            "description": "Description of rank"
          },
          "surname": {
            "type": "string",
            "description": "Description of surname"
          }
        },
        "description": "Description of author"
      }
    },
    "bestaccessright": {
      "allOf": [
        {
          "$ref": "#/definitions/AccessRight"
        },
        {
          "description": "Description of bestaccessright"
        }
      ]
    },
    "codeRepositoryUrl": {
      "type": "string",
      "description": "Description of codeRepositoryUrl"
    },
    "contactgroup": {
      "description": "Description of contactgroup",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of contactgroup"
      }
    },
    "contactperson": {
      "description": "Description of contactperson",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of contactperson"
      }
    },
    "container": {
      "type": "object",
      "properties": {
        "conferencedate": {
          "type": "string",
          "description": "Description of conferencedate"
        },
        "conferenceplace": {
          "type": "string",
          "description": "Description of conferenceplace"
        },
        "edition": {
          "type": "string",
          "description": "Description of edition"
        },
        "ep": {
          "type": "string",
          "description": "Description of ep"
        },
        "iss": {
          "type": "string",
          "description": "Description of iss"
        },
        "issnLinking": {
          "type": "string",
          "description": "Description of issnLinking"
        },
        "issnOnline": {
          "type": "string",
          "description": "Description of issnOnline"
        },
        "issnPrinted": {
          "type": "string",
          "description": "Description of issnPrinted"
        },
        "name": {
          "type": "string",
          "description": "Description of name"
        },
        "sp": {
          "type": "string",
          "description": "Description of sp"
        },
        "vol": {
          "type": "string",
          "description": "Description of vol"
        }
      },
      "description": "Description of container"
    },
    "contributor": {
      "description": "Description of contributor",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of contributor"
      }
    },
    "country": {
      "description": "Description of country",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Description of code"
          },
          "label": {
            "type": "string",
            "description": "Description of label"
          },
          "provenance": {
            "allOf": [
              {
                "$ref": "#/definitions/Provenance"
              },
              {
                "description": "Description of provenance"
              }
            ]
          }
        },
        "description": "Description of country"
      }
    },
    "coverage": {
      "description": "Description of coverage",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of coverage"
      }
    },
    "dateofcollection": {
      "type": "string",
      "description": "Description of dateofcollection"
    },
    "description": {
      "description": "Description of description",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of description"
      }
    },
    "documentationUrl": {
      "description": "Description of documentationUrl",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of documentationUrl"
      }
    },
    "embargoenddate": {
      "type": "string",
      "description": "Description of embargoenddate"
    },
    "externalReference": {
      "description": "Description of externalReference",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Description of name"
          },
          "provenance": {
            "allOf": [
              {
                "$ref": "#/definitions/Provenance"
              },
              {
                "description": "Description of provenance"
              }
            ]
          },
          "typology": {
            "type": "string",
            "description": "Description of typology"
          },
          "value": {
            "type": "string",
            "description": "Description of value"
          }
        },
        "description": "Description of externalReference"
      }
    },
    "format": {
      "description": "Description of format",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of format"
      }
    },
    "geolocation": {
      "description": "Description of geolocation",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "box": {
            "type": "string",
            "description": "Description of box"
          },
          "place": {
            "type": "string",
            "description": "Description of place"
          },
          "point": {
            "type": "string",
            "description": "Description of point"
          }
        },
        "description": "Description of geolocation"
      }
    },
    "id": {
      "type": "string",
      "description": "Description of id"
    },
    "instance": {
      "description": "Description of instance",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "accessright": {
            "allOf": [
              {
                "$ref": "#/definitions/AccessRight"
              },
              {
                "description": "Description of accessright"
              }
            ]
          },
          "collectedfrom": {
            "allOf": [
              {
                "$ref": "#/definitions/KeyValue"
              },
              {
                "description": "Description of collectedfrom"
              }
            ]
          },
          "hostedby": {
            "allOf": [
              {
                "$ref": "#/definitions/KeyValue"
              },
              {
                "description": "Description of hostedby"
              }
            ]
          },
          "license": {
            "type": "string",
            "description": "Description of license"
          },
          "publicationdate": {
            "type": "string",
            "description": "Description of publicationdate"
          },
          "refereed": {
            "type": "string",
            "description": "Description of refereed"
          },
          "type": {
            "type": "string",
            "description": "Description of type"
          },
          "url": {
            "description": "Description of url",
            "type": "array",
            "items": {
              "type": "string",
              "description": "Description of url"
            }
          }
        },
        "description": "Description of instance"
      }
    },
    "language": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "Description of code"
        },
        "label": {
          "type": "string",
          "description": "Description of label"
        }
      },
      "description": "Description of language"
    },
    "lastupdatetimestamp": {
      "type": "integer",
      "description": "Description of lastupdatetimestamp"
    },
    "maintitle": {
      "type": "string",
      "description": "Description of maintitle"
    },
    "originalId": {
      "description": "Description of originalId",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of originalId"
      }
    },
    "pid": {
      "description": "Description of pid",
      "type": "array",
      "items": {
        "allOf": [
          {
            "$ref": "#/definitions/ControlledField"
          },
          {
            "description": "Description of pid"
          }
        ]
      }
    },
    "programmingLanguage": {
      "type": "string",
      "description": "Description of programmingLanguage"
    },
    "publicationdate": {
      "type": "string",
      "description": "Description of publicationdate"
    },
    "publisher": {
      "type": "string",
      "description": "Description of publisher"
    },
    "size": {
      "type": "string",
      "description": "Description of size"
    },
    "source": {
      "description": "Description of source",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of source"
      }
    },
    "subjects": {
      "description": "Description of subjects",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "provenance": {
            "allOf": [
              {
                "$ref": "#/definitions/Provenance"
              },
              {
                "description": "Description of provenance"
              }
            ]
          },
          "subject": {
            "allOf": [
              {
                "$ref": "#/definitions/ControlledField"
              },
              {
                "description": "Description of subject"
              }
            ]
          }
        },
        "description": "Description of subjects"
      }
    },
    "subtitle": {
      "type": "string",
      "description": "Description of subtitle"
    },
    "tool": {
      "description": "Description of tool",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Description of tool"
      }
    },
    "type": {
      "type": "string",
      "description": "Description of type"
    },
    "version": {
      "type": "string",
      "description": "Description of version"
    }
  }
}