--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/jsonld-schema.json Tue Mar 18 10:10:24 2014 +0100
@@ -0,0 +1,90 @@
+{
+ "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"],
+ "enum": ["@id"]
+ },
+ "@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"
+ }
+ }
+ }
+ },
+
+ "anyOf": [
+ { "$ref": "#/definitions/context" },
+ { "$ref": "#/definitions/graph" },
+ { "$ref": "#/definitions/common" }
+ ],
+
+ "type": ["object", "array"],
+ "additionalProperties": true
+}
\ No newline at end of file