schemas/schema.json
{
"$schema": "http://json-schema.org/draft-03/schema#",
"definitions": {
"entity": {
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "object",
"properties": {
"@type": {
"type": "string",
"enum": ["Entity"]
},
"type": {
"description": "An entity type, e.g. organization",
"type": [
"string",
"null"
]
},
"name": {
"description": "A primary name, e.g. a legally recognized name",
"type": [
"string",
"null"
]
},
"description": {
"description": "A description of the entity",
"type": [
"string",
"null"
]
},
"classification": {
"description": "An entity category, e.g. committee",
"type": [
"string",
"null"
]
},
"birth_date": {
"description": "A date of birth",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
},
"death_date": {
"description": "A date of death",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
},
"founding_date": {
"description": "A date of founding",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
},
"dissolution_date": {
"description": "A date of dissolution",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
},
"parent_id": {
"description": "The ID of the organization that contains this organization",
"type": [
"string",
"null"
]
},
"other_names": {
"description": "Alternate or former names",
"type": "array",
"items": {
"$ref": "#/definitions/other_name"
}
},
"identifiers": {
"description": "Issued identifiers",
"type": "array",
"items": {
"$ref": "#/definitions/identifier"
}
},
"contact_details": {
"description": "Means of contacting the entity",
"type": "array",
"items": {
"$ref": "#/definitions/contact_detail"
}
},
"links": {
"description": "URLs to documents about the entity",
"type": "array",
"items": {
"$ref": "#/definitions/link"
}
},
"sources": {
"description": "URLs to documents from which the resource is derived",
"type": "array",
"items": {
"$ref": "#/definitions/link"
}
},
"created_at": {
"description": "The time at which the resource was created",
"type": [
"string",
"null"
],
"format": "date-time"
},
"updated_at": {
"description": "The time at which the resource was last modified",
"type": [
"string",
"null"
],
"format": "date-time"
}
}
},
"relation": {
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "object",
"properties": {
"@type": {
"type": "string",
"enum": ["Relation"]
},
"subject": {
"description": "The subject of the relation",
"type": "array",
"items": {
"$ref": "#/definitions/entity"
}
},
"object": {
"description": "The object of the relation",
"$ref": "#/definitions/entity"
},
"name": {
"description": "The name of the relation",
"type": [
"string",
"null"
]
},
"start_date": {
"description": "The date on which the relationship began",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{4}((-[0-9]{2}){0,2}|(-[0-9]{2}){2}(T[0-9]{2}(:[0-9]{2}(:[0-9]{2})?)?Z)?)$"
},
"end_date": {
"description": "The date on which the relationship ended",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{4}((-[0-9]{2}){0,2}|(-[0-9]{2}){2}(T[0-9]{2}(:[0-9]{2}(:[0-9]{2})?)?Z)?)$"
},
"identifiers": {
"description": "Issued identifiers",
"type": "array",
"items": {
"$ref": "#/definitions/identifier"
}
},
"links": {
"description": "URLs to documents about the list",
"type": "array",
"items": {
"$ref": "#/definitions/link"
}
},
"sources": {
"description": "URLs to documents from which the resource is derived",
"type": "array",
"items": {
"$ref": "#/definitions/link"
}
},
"created_at": {
"description": "The time at which the resource was created",
"type": [
"string",
"null"
],
"format": "date-time"
},
"updated_at": {
"description": "The time at which the resource was last modified",
"type": [
"string",
"null"
],
"format": "date-time"
}
}
},
"list": {
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "object",
"properties": {
"@type": {
"type": "string",
"enum": ["List"]
},
"name": {
"description": "The name of the list",
"type": [
"string",
"null"
]
},
"description": {
"description": "A description of the list",
"type": [
"string",
"null"
]
},
"number_of_items": {
"description": "The number of items in the list",
"type": [
"integer",
"null"
]
},
"item_list_order": {
"description": "The type of ordering (e.g. ascending, descending, unordered)",
"type": [
"string",
"null"
],
"enum": [
"ascending",
"descending",
"unordered"
]
},
"identifiers": {
"description": "Issued identifiers",
"type": "array",
"items": {
"$ref": "#/definitions/identifier"
}
},
"links": {
"description": "URLs to documents about the list",
"type": "array",
"items": {
"$ref": "#/definitions/link"
}
},
"sources": {
"description": "URLs to documents from which the resource is derived",
"type": "array",
"items": {
"$ref": "#/definitions/link"
}
},
"created_at": {
"description": "The time at which the resource was created",
"type": [
"string",
"null"
],
"format": "date-time"
},
"updated_at": {
"description": "The time at which the resource was last modified",
"type": [
"string",
"null"
],
"format": "date-time"
}
}
},
"other_name": {
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "Other name",
"description": "An alternate or former name",
"type": "object",
"properties": {
"name": {
"description": "An alternate or former name",
"type": "string"
},
"start_date": {
"description": "The date on which the name was adopted",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
},
"end_date": {
"description": "The date on which the name was abandoned",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{4}(-[0-9]{2}){0,2}$"
},
"note": {
"description": "A note, e.g. 'Birth name'",
"type": [
"string",
"null"
]
}
}
},
"identifier": {
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "Identifier",
"description": "An issued identifier",
"type": "object",
"properties": {
"identifier": {
"description": "An issued identifier, e.g. a DUNS number",
"type": "string",
"required": true
},
"scheme": {
"description": "An identifier scheme, e.g. DUNS",
"type": [
"string",
"null"
]
}
}
},
"contact_detail": {
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "Contact detail",
"description": "A means of contacting an entity",
"type": "object",
"properties": {
"type": {
"description": "A type of medium, e.g. 'fax' or 'email'",
"type": "string",
"required": true
},
"value": {
"description": "A value, e.g. a phone number or email address",
"type": "string",
"required": true
}
}
},
"link": {
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "Link",
"description": "A URL",
"type": "object",
"properties": {
"url": {
"description": "A URL",
"type": "string",
"format": "uri",
"required": true
},
"note": {
"description": "A note, e.g. 'Wikipedia page'",
"type": [
"string",
"null"
]
}
}
}
}
}