$schema: https://json-schema.org/draft/2020-12/schema
$defs:
  languageStringSingle:
    oneOf:
    - type: string
    - type: object
      patternProperties:
        ^([A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*)?$:
          type: string
      additionalProperties: false
  languageStringArrayObject:
    type: object
    patternProperties:
      ^([A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*)?$:
        oneOf:
        - type: string
        - type: array
          items:
            type: string
    additionalProperties: false
  languageStringMultiple:
    oneOf:
    - $ref: '#/$defs/languageStringArrayObject'
    - $ref: '#/$defs/languageStringSingle'
    - type: array
      items:
        type: string
  typedValue:
    oneOf:
    - type: string
    - type: object
      required:
      - '@value'
      properties:
        '@value':
          type: string
        '@type':
          type: string
type: object
properties:
  id:
    $ref: https://opengeospatial.github.io/bblocks/annotated-schemas/ogc-utils/iri-or-curie/schema.yaml
    x-jsonld-id: '@id'
  skosType:
    enum:
    - Concept
    - ConceptScheme
    - Collection
    - OrderedCollection
    x-jsonld-id: '@type'
  prefLabel:
    $ref: '#/$defs/languageStringSingle'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#prefLabel
    x-jsonld-container: '@language'
  altLabel:
    $ref: '#/$defs/languageStringMultiple'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#altLabel
    x-jsonld-container: '@language'
  hiddenLabel:
    $ref: '#/$defs/languageStringMultiple'
  notation:
    oneOf:
    - $ref: '#/$defs/typedValue'
    - type: array
      items:
        $ref: '#/$defs/typedValue'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#notation
    x-jsonld-container: '@language'
  note:
    $ref: '#/$defs/languageStringMultiple'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#note
    x-jsonld-container: '@language'
  changeNote:
    $ref: '#/$defs/languageStringMultiple'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#changeNote
    x-jsonld-container: '@language'
  definition:
    $ref: '#/$defs/languageStringMultiple'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#definition
    x-jsonld-container: '@language'
  editorialNote:
    $ref: '#/$defs/languageStringMultiple'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#editorialNote
    x-jsonld-container: '@language'
  example:
    $ref: '#/$defs/languageStringMultiple'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#example
    x-jsonld-container: '@language'
  historyNote:
    $ref: '#/$defs/languageStringMultiple'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#historyNote
    x-jsonld-container: '@language'
  scopeNote:
    $ref: '#/$defs/languageStringMultiple'
    x-jsonld-id: http://www.w3.org/2004/02/skos/core#scopeNote
    x-jsonld-container: '@language'
x-jsonld-extra-terms:
  ConceptScheme: http://www.w3.org/2004/02/skos/core#ConceptScheme
  Concept: http://www.w3.org/2004/02/skos/core#Concept
  Collection: http://www.w3.org/2004/02/skos/core#Collection
  OrderedCollection: http://www.w3.org/2004/02/skos/core#OrderedCollection
x-jsonld-prefixes:
  skos: http://www.w3.org/2004/02/skos/core#
