Skip to content

Instantly share code, notes, and snippets.

@science
Created June 24, 2016 14:56
Show Gist options
  • Save science/6c187f22224d7a5364d7cd3c2cb95563 to your computer and use it in GitHub Desktop.
Save science/6c187f22224d7a5364d7cd3c2cb95563 to your computer and use it in GitHub Desktop.
JSON-LD definition in json-schema format
{
"title": "Schema for JSON-LD",
"$schema": "http://json-schema.org/draft-04/schema#",
"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"]
},
"@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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment