{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ofn.gov.cz/slovníky/2026-02-26/rpp/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"
        }
      }
    },
    "pojmy": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "title": "Veřejný údaj",
            "type": "object",
            "required": [
              "iri",
              "typ",
              "název"
            ],
            "properties": {
              "iri": {
                "type": "string",
                "format": "iri"
              },
              "typ": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "allOf": [
                  {
                    "type": "array",
                    "contains": {
                      "const": "Veřejný údaj"
                    },
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "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"
                  }
                }
              },
              "je-sdílen-v-ppdf": {
                "title": "je sdílen v propojeném datovém fondu",
                "type": "boolean"
              }
            }
          },
          {
            "title": "Neveřejný údaj",
            "type": "object",
            "required": [
              "iri",
              "typ",
              "název",
              "ustanovení-dokládající-neveřejnost-údaje"
            ],
            "properties": {
              "iri": {
                "type": "string",
                "format": "iri"
              },
              "typ": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "allOf": [
                  {
                    "type": "array",
                    "contains": {
                      "const": "Neveřejný údaj"
                    },
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "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"
                  }
                }
              },
              "je-sdílen-v-ppdf": {
                "title": "je sdílen v propojeném datovém fondu",
                "type": "boolean"
              },
              "ustanovení-dokládající-neveřejnost-údaje": {
                "title": "je vymezen ustanovením stanovujícím jeho neveřejnost",
                "description": "U neveřejného údaje je třeba odkázat na ustanovení, ze kterého jeho neveřejnost vyplývá.",
                "type": "array",
                "minItems": 1,
                "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"
                  ]
                }
              }
            }
          },
          {
            "title": "Typ objektu práva",
            "description": "Typ jehož instance jsou podtřídami Objektu práva.",
            "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": "Typ objektu práva"
                    },
                    "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"
                  }
                }
              },
              "je-sdílen-v-ppdf": {
                "title": "je sdílen v propojeném datovém fondu",
                "type": "boolean"
              },
              "agendový-informační-systém": {
                "title": "údaje jsou v AIS",
                "type": "string",
                "format": "iri"
              },
              "agenda": {
                "title": "sdružuje údaje vedené nebo vytvářené v rámci agendy",
                "description": "Přiřazuje subjektu nebo objektu údajů agendu v níž jsou údaje sdružené v subjektu nebo objektu údajů vedeny nebo vytvářeny. Subjekt nebo objekt údajů je veden nebo vytvářen v právě jedné agendě. V jedné agendě může být vedeno nebo vytvářeno více různých subjektů nebo objektů údajů.",
                "type": "string",
                "format": "iri"
              }
            }
          },
          {
            "title": "Typ subjektu práva",
            "description": "Typ jehož instance jsou podtřídami Subjektu práva.",
            "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": "Typ subjektu práva"
                    },
                    "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"
                  }
                }
              },
              "je-sdílen-v-ppdf": {
                "title": "je sdílen v propojeném datovém fondu",
                "type": "boolean"
              },
              "agendový-informační-systém": {
                "title": "údaje jsou v AIS",
                "type": "string",
                "format": "iri"
              },
              "agenda": {
                "title": "sdružuje údaje vedené nebo vytvářené v rámci agendy",
                "description": "Přiřazuje subjektu nebo objektu údajů agendu v níž jsou údaje sdružené v subjektu nebo objektu údajů vedeny nebo vytvářeny. Subjekt nebo objekt údajů je veden nebo vytvářen v právě jedné agendě. V jedné agendě může být vedeno nebo vytvářeno více různých subjektů nebo objektů údajů.",
                "type": "string",
                "format": "iri"
              }
            }
          }
        ]
      }
    }
  }
}