{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ofn.gov.cz/slovníky/2026-02-26/tezaurus/schéma.json",
  "title": "Tezaurus",
  "description": "Tezaurus je nejjednodušším typem slovníku.",
  "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": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "allOf": [
        {
          "type": "array",
          "contains": {
            "const": "Tezaurus"
          },
          "items": {
            "type": "string"
          }
        },
        {
          "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"
        }
      }
    },
    "pojmy": {
      "type": "array",
      "items": {
        "title": "Pojem",
        "description": "Pojem, který reprezentuje typ subjektu práva, typ objektu práva, vlastnost nebo vztah.",
        "type": "object",
        "required": [
          "iri",
          "typ",
          "název"
        ],
        "properties": {
          "iri": {
            "type": "string",
            "format": "iri"
          },
          "typ": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "allOf": [
              {
                "type": "array",
                "contains": {
                  "const": "Koncept"
                },
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "array",
                "contains": {
                  "const": "Pojem"
                },
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "název": {
            "title": "název",
            "description": "Název pojmu. Je unikátní v rámci názvů pojmů ve slovníku.",
            "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"
              }
            }
          },
          "alternativní-název": {
            "title": "alternativní název",
            "description": "Alternativní název pojmu. Musí být jiný, než hlavní název.",
            "type": "object",
            "additionalProperties": {
              "title": "Hodnota v jiném jazyce",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "properties": {
              "cs": {
                "title": "Hodnota v českém jazyce",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "en": {
                "title": "Hodnota v anglickém jazyce",
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "popis": {
            "title": "popis",
            "type": "object",
            "additionalProperties": {
              "title": "Hodnota v jiném jazyce",
              "type": "string"
            },
            "properties": {
              "cs": {
                "title": "Hodnota v českém jazyce",
                "type": "string"
              },
              "en": {
                "title": "Hodnota v anglickém jazyce",
                "type": "string"
              }
            }
          },
          "definice": {
            "title": "definice",
            "description": "Definice pojmu. Je unikátní v rámci definic pojmů ve slovníku.",
            "type": "object",
            "additionalProperties": {
              "title": "Hodnota v jiném jazyce",
              "type": "string"
            },
            "properties": {
              "cs": {
                "title": "Hodnota v českém jazyce",
                "type": "string"
              },
              "en": {
                "title": "Hodnota v anglickém jazyce",
                "type": "string"
              }
            }
          },
          "definující-ustanovení-právního-předpisu": {
            "title": "definující ustanovení",
            "description": "Ustanovení právního předpisu, ve kterém je pojem definován.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "iri",
              "examples": [
                "https://opendata.eselpoint.cz/esel-esb/eli/cz/sb/1999/106/2024-01-01/dokument/norma/cast_1/par_3a/odst_3"
              ]
            }
          },
          "související-ustanovení-právního-předpisu": {
            "title": "související ustanovení",
            "description": "Ustanovení právního předpisu, které s daným pojmem souvisí.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "iri",
              "examples": [
                "https://opendata.eselpoint.cz/esel-esb/eli/cz/sb/1999/106/2024-01-01/dokument/norma/cast_1/par_3a/odst_3"
              ]
            }
          },
          "definující-nelegislativní-zdroj": {
            "title": "definující nelegislativní zdroj",
            "description": "Nelegislativní zdroj, ve kterém je pojem definován.",
            "type": "array",
            "items": {
              "title": "Digitální objekt",
              "description": "Digitální objekt je objekt existující pouze v digitálním světě (např. databáze nebo datová sada) příp. se jedná o plně digitalizovaný objekt reálného světa (např. dokument, obrázek nebo kniha).",
              "type": "object",
              "required": [
                "typ"
              ],
              "properties": {
                "typ": {
                  "oneOf": [
                    {
                      "const": "Digitální objekt"
                    },
                    {
                      "type": "array",
                      "contains": {
                        "const": "Digitální objekt"
                      },
                      "items": {
                        "type": "string"
                      }
                    }
                  ]
                },
                "název": {
                  "title": "název",
                  "description": "Název digitálního objektu",
                  "type": "object",
                  "additionalProperties": {
                    "title": "Hodnota v jiném jazyce",
                    "type": "string"
                  },
                  "properties": {
                    "cs": {
                      "title": "Hodnota v českém jazyce",
                      "type": "string"
                    },
                    "en": {
                      "title": "Hodnota v anglickém jazyce",
                      "type": "string"
                    }
                  }
                },
                "popis": {
                  "title": "popis",
                  "description": "Popis digitálního objektu.",
                  "type": "object",
                  "additionalProperties": {
                    "title": "Hodnota v jiném jazyce",
                    "type": "string"
                  },
                  "properties": {
                    "cs": {
                      "title": "Hodnota v českém jazyce",
                      "type": "string"
                    },
                    "en": {
                      "title": "Hodnota v anglickém jazyce",
                      "type": "string"
                    }
                  }
                },
                "url": {
                  "title": "URL ke stažení",
                  "description": "URL, ze kterého může být stažen digitální objekt",
                  "type": "string",
                  "format": "iri"
                }
              }
            }
          },
          "související-nelegislativní-zdroj": {
            "title": "související nelegislativní zdroj",
            "description": "Nelegislativní zdroj, který s daným pojmem souvisí.",
            "type": "array",
            "items": {
              "title": "Digitální objekt",
              "description": "Digitální objekt je objekt existující pouze v digitálním světě (např. databáze nebo datová sada) příp. se jedná o plně digitalizovaný objekt reálného světa (např. dokument, obrázek nebo kniha).",
              "type": "object",
              "required": [
                "typ"
              ],
              "properties": {
                "typ": {
                  "oneOf": [
                    {
                      "const": "Digitální objekt"
                    },
                    {
                      "type": "array",
                      "contains": {
                        "const": "Digitální objekt"
                      },
                      "items": {
                        "type": "string"
                      }
                    }
                  ]
                },
                "název": {
                  "title": "název",
                  "description": "Název digitálního objektu",
                  "type": "object",
                  "additionalProperties": {
                    "title": "Hodnota v jiném jazyce",
                    "type": "string"
                  },
                  "properties": {
                    "cs": {
                      "title": "Hodnota v českém jazyce",
                      "type": "string"
                    },
                    "en": {
                      "title": "Hodnota v anglickém jazyce",
                      "type": "string"
                    }
                  }
                },
                "popis": {
                  "title": "popis",
                  "description": "Popis digitálního objektu.",
                  "type": "object",
                  "additionalProperties": {
                    "title": "Hodnota v jiném jazyce",
                    "type": "string"
                  },
                  "properties": {
                    "cs": {
                      "title": "Hodnota v českém jazyce",
                      "type": "string"
                    },
                    "en": {
                      "title": "Hodnota v anglickém jazyce",
                      "type": "string"
                    }
                  }
                },
                "url": {
                  "title": "URL ke stažení",
                  "description": "URL, ze kterého může být stažen digitální objekt",
                  "type": "string",
                  "format": "iri"
                }
              }
            }
          },
          "ekvivalentní-pojem": {
            "title": "ekvivalentní pojem",
            "description": "Významově ekvivalentní pojem. Typicky se jedná o pojem z jiného slovníku, který však má stejný význam.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "iri"
            }
          },
          "nadřazený-pojem": {
            "title": "nadřazený pojem",
            "description": "Významově širší pojem. Může se jednat o specializaci, instanciaci, partonomii, apod.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "iri"
            }
          }
        }
      }
    }
  }
}