For the complete documentation index, see llms.txt. This page is also available as Markdown.

Schema Language

A method of expressing the contents of a schema that is a combination of syntax (usually a unique syntax for a given schema language) with some semantics particular to writing schema.

Examples of Schema Languages include:

  • JSONSchema

  • XMLSchema (XSD)

  • RDFSchema (RDFS)

  • AvroSchema,

  • English*,

  • German*,

  • and many others…

*Note

A Schema Language could simply be a plain language like English or German - although a linguistic solution struggles to meet FAIR Principles, being difficult to search and hard for machines to parse unambiguously.

Some examples of schema in different languages

Let's take data in JSON format:

{
  "productId": 1,
  "productName": "A green door",
  "price": 12.50,
  "tags": [ "home", "green" ]
} 

While generally straightforward, the example leaves some open questions. Here are just a few of them: What is productId? Is productName required? Can the price be zero (0)? Are all of the tags string values?

JSON Schema is a Schema language that is a proposed IETF standard for how to answer such questions for data. A schema for the example above can be:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.com/product.schema.json",
  "title": "Product",
  "description": "A product from Acme's catalog",
  "type": "object",
  "properties": {
    "productId": {
      "description": "The unique identifier for a product",
      "type": "integer"
    },
    "productName": { "description": "Name of the product", "type": "string" },
    "price": {
      "description": "The price of the product",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "tags": {
      "description": "Tags for the product",
      "type": "array",
      "items": { "type": "string" },
      "minItems": 1,
      "uniqueItems": true
    }
  },
  "required": ["productId", "productName", "price"]
}

The purpose of an XML Schema is to define the legal (valid) building blocks of an XML document: the elements and attributes that can appear in a document the number of (and order of) child elements data types for elements and attributes default and fixed values for elements and attributes

Wikipedia has a more complex example of a schema written in XSD.

A schema written in plain English, translated from the JSONSchema example.

I need you to tell me the product name, which must be text, and a unique identifying integer for that product. I also need to know the price of the product, which can't be less than or equal to zero. You may also tell me some key words associated with the project to aid in its description.

Last updated