json_schema: {
      "title": "Schema for JSON-LD",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "self": {
          "vendor": "io.mediachain",
          "name": "jsonld",
          "format": "jsonschema",
          "version": "1-0-0"
      },
      "definitions": {
          "context": {
              "additionalProperties": true,
              "properties": {
                  "@context": {
                      "description": "Used to define the short-hand names that are used throughout a JSON-LD document.",
                      "type": [
                          "object",
                          "string",
                          "array",
                          "null"
                      ]
                  }
              }
          },
          "graph": {
              "additionalProperties": true,
              "properties": {
                  "@graph": {
                      "description": "Used to express a graph.",
                      "type": [
                          "array",
                          "object"
                      ],
                      "additionalItems": {
                          "anyOf": [
                              {
                                  "$ref": "#/definitions/common"
                              }
                          ]
                      }
                  }
              }
          },
          "common": {
              "additionalProperties": {
                  "anyOf": [
                      {
                          "$ref": "#/definitions/common"
                      }
                  ]
              },
              "properties": {
                  "@id": {
                      "description": "Used to uniquely identify things that are being described in the document with IRIs or blank node identifiers.",
                      "type": "string",
                      "format": "uri"
                  },
                  "@value": {
                      "description": "Used to specify the data that is associated with a particular property in the graph.",
                      "type": [
                          "string",
                          "boolean",
                          "number",
                          "null"
                      ]
                  },
                  "@language": {
                      "description": "Used to specify the language for a particular string value or the default language of a JSON-LD document.",
                      "type": [
                          "string",
                          "null"
                      ]
                  },
                  "@type": {
                      "description": "Used to set the data type of a node or typed value.",
                      "type": [
                          "string",
                          "null",
                          "array"
                      ]
                  },
                  "@container": {
                      "description": "Used to set the default container type for a term.",
                      "type": [
                          "string",
                          "null"
                      ],
                      "enum": [
                          "@list",
                          "@index",
                          "@set"
                      ]
                  },
                  "@list": {
                      "description": "Used to express an ordered set of data."
                  },
                  "@set": {
                      "description": "Used to express an unordered set of data and to ensure that values are always represented as arrays."
                  },
                  "@reverse": {
                      "description": "Used to express reverse properties.",
                      "type": [
                          "string",
                          "object",
                          "null"
                      ],
                      "additionalProperties": {
                          "anyOf": [
                              {
                                  "$ref": "#/definitions/common"
                              }
                          ]
                      }
                  },
                  "@base": {
                      "description": "Used to set the base IRI against which relative IRIs are resolved",
                      "type": [
                          "string",
                          "null"
                      ],
                      "format": "uri"
                  },
                  "@vocab": {
                      "description": "Used to expand properties and values in @type with a common prefix IRI",
                      "type": [
                          "string",
                          "null"
                      ],
                      "format": "uri"
                  }
              }
          }
      },
      "allOf": [
          {
              "$ref": "#/definitions/context"
          },
          {
              "$ref": "#/definitions/graph"
          },
          {
              "$ref": "#/definitions/common"
          }
      ],
      "type": [
          "object",
          "array"
      ],
      "additionalProperties": true
  }