{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ofn.gov.cz/slovníky/2026-02-26/slovník/schéma.json",
  "title": "Slovník",
  "description": "Slovník je seskupení pojmů popisující vybranou věcnou oblast.",
  "type": "object",
  "required": [
    "@context",
    "iri",
    "typ",
    "název"
  ],
  "properties": {
    "@context": {
      "oneOf": [
        {
          "const": "https://ofn.gov.cz/slovníky/2026-02-26/kompletní/kontext.jsonld"
        },
        {
          "type": "array",
          "contains": {
            "const": "https://ofn.gov.cz/slovníky/2026-02-26/kompletní/kontext.jsonld"
          },
          "items": {
            "type": "string",
            "format": "iri"
          }
        }
      ]
    },
    "iri": {
      "type": "string",
      "format": "iri"
    },
    "typ": {
      "oneOf": [
        {
          "const": "Slovník"
        },
        {
          "type": "array",
          "contains": {
            "const": "Slovník"
          },
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "název": {
      "title": "název",
      "description": "skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise\n      disjoint properties.",
      "type": "object",
      "additionalProperties": {
        "title": "Hodnota v jiném jazyce",
        "type": "string"
      },
      "required": [
        "cs"
      ],
      "properties": {
        "cs": {
          "title": "Hodnota v českém jazyce",
          "type": "string"
        },
        "en": {
          "title": "Hodnota v anglickém jazyce",
          "type": "string"
        }
      }
    },
    "popis": {
      "title": "popis",
      "description": "An account of the resource.",
      "type": "object",
      "additionalProperties": {
        "title": "Hodnota v jiném jazyce",
        "type": "string"
      },
      "required": [
        "cs"
      ],
      "properties": {
        "cs": {
          "title": "Hodnota v českém jazyce",
          "type": "string"
        },
        "en": {
          "title": "Hodnota v anglickém jazyce",
          "type": "string"
        }
      }
    },
    "vytvořeno": {
      "title": "okamžik vytvoření",
      "description": "Pro reprezentaci časových okamžiků lze použít datum, čas a nebo kombinací data a času. Pokud je jasné, který datový typ je v daném místě vhodný, použije se konkrétní datový typ, tedy datum, čas či datum a čas. Často ale při tvorbě OFN není předem známo, jaká úroveň detailu bude pro určení okamžiku k dispozici. Aby se zabránilo různým reprezentacím této situace v různých OFN, je specifikována třída Časový okamžik.",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "typ"
      ],
      "properties": {
        "iri": {
          "type": "string",
          "format": "iri"
        },
        "typ": {
          "oneOf": [
            {
              "const": "Časový okamžik"
            },
            {
              "type": "array",
              "contains": {
                "const": "Časový okamžik"
              },
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "je_nespecifikovaný": {
          "title": "je nespecifikovaný",
          "description": "Nespecifikovaný časový okamžik, u kterého se ví, že jeho hodnota je neznámá. Jedná se o pro interoperabilitu výrazně lepší variantu, než si neznámou hodnotou uměle stanovit na 3333-03-03 či 9999-09-09 apod. nebo hodnotu vynechat.",
          "type": "boolean"
        },
        "datum_a_čas": {
          "title": "datum a čas",
          "description": "Datum a čas začátku okamžiku.",
          "type": "string",
          "format": "date-time"
        },
        "datum": {
          "title": "datum",
          "description": "Datum okamžiku.",
          "type": "string",
          "format": "date"
        }
      }
    },
    "aktualizováno": {
      "title": "okamžik poslední změny",
      "description": "Pro reprezentaci časových okamžiků lze použít datum, čas a nebo kombinací data a času. Pokud je jasné, který datový typ je v daném místě vhodný, použije se konkrétní datový typ, tedy datum, čas či datum a čas. Často ale při tvorbě OFN není předem známo, jaká úroveň detailu bude pro určení okamžiku k dispozici. Aby se zabránilo různým reprezentacím této situace v různých OFN, je specifikována třída Časový okamžik.",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "typ"
      ],
      "properties": {
        "iri": {
          "type": "string",
          "format": "iri"
        },
        "typ": {
          "oneOf": [
            {
              "const": "Časový okamžik"
            },
            {
              "type": "array",
              "contains": {
                "const": "Časový okamžik"
              },
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "je_nespecifikovaný": {
          "title": "je nespecifikovaný",
          "description": "Nespecifikovaný časový okamžik, u kterého se ví, že jeho hodnota je neznámá. Jedná se o pro interoperabilitu výrazně lepší variantu, než si neznámou hodnotou uměle stanovit na 3333-03-03 či 9999-09-09 apod. nebo hodnotu vynechat.",
          "type": "boolean"
        },
        "datum_a_čas": {
          "title": "datum a čas",
          "description": "Datum a čas začátku okamžiku.",
          "type": "string",
          "format": "date-time"
        },
        "datum": {
          "title": "datum",
          "description": "Datum okamžiku.",
          "type": "string",
          "format": "date"
        }
      }
    }
  }
}