$schema: https://json-schema.org/draft/2020-12/schema
title: SeaDOTs Indicator Quality Requirement
description: 'Requirement profile attached to an indicator. Captures spatial support,
  temporal support, method metadata, uncertainty, controlled-vocabulary needs, access
  requirements, and pass/fail thresholds.

  '
type: object
required:
- id
- type
- indicator
- thresholds
properties:
  id:
    type: string
    format: uri-reference
    x-jsonld-id: '@id'
  type:
    oneOf:
    - type: string
    - type: array
      items:
        type: string
    x-jsonld-id: '@type'
  name:
    type: string
    x-jsonld-id: https://schema.org/name
  indicator:
    type: string
    format: uri-reference
    x-jsonld-id: http://www.w3.org/ns/sosa/observedProperty
    x-jsonld-type: '@id'
  description:
    type: string
    x-jsonld-id: https://schema.org/description
  geospatialRequirements:
    type: object
    properties:
      requiredGeometry:
        type: string
        x-jsonld-id: https://schema.org/additionalType
      crs:
        type: string
        format: uri-reference
        x-jsonld-id: http://purl.org/dc/terms/conformsTo
        x-jsonld-type: '@id'
      bbox:
        type: array
        minItems: 4
        items:
          type: number
        x-jsonld-id: https://purl.org/geojson/vocab#bbox
        x-jsonld-container: '@list'
      minimumSpatialResolution:
        type: string
        x-jsonld-id: https://schema.org/spatialResolution
      requiredSpatialRelations:
        type: array
        items:
          type: string
        x-jsonld-id: https://schema.org/measurementTechnique
        x-jsonld-container: '@set'
    additionalProperties: true
    x-jsonld-id: http://www.opengis.net/ont/geosparql#hasGeometry
  temporalRequirements:
    type: object
    properties:
      minimumTemporalCoverage:
        type: string
        x-jsonld-id: https://schema.org/temporalCoverage
      minimumTemporalResolution:
        type: string
        x-jsonld-id: https://schema.org/temporalCoverage
      requiredBaseline:
        type: string
        x-jsonld-id: https://schema.org/measurementTechnique
    additionalProperties: true
    x-jsonld-id: http://purl.org/dc/terms/temporal
  methodRequirements:
    type: array
    items:
      type: string
    x-jsonld-id: https://schema.org/measurementTechnique
    x-jsonld-container: '@set'
  uncertaintyRequirements:
    type: array
    items:
      type: string
    x-jsonld-id: http://www.w3.org/ns/dqv#hasQualityAnnotation
    x-jsonld-container: '@set'
  vocabularyRequirements:
    type: array
    items:
      type: string
      format: uri-reference
    x-jsonld-id: http://purl.org/dc/terms/conformsTo
    x-jsonld-container: '@set'
    x-jsonld-type: '@id'
  accessRequirements:
    type: array
    items:
      type: string
    x-jsonld-id: https://schema.org/conditionsOfAccess
    x-jsonld-container: '@set'
  thresholds:
    type: array
    items:
      type: string
    x-jsonld-id: https://schema.org/threshold
    x-jsonld-container: '@set'
  readiness:
    type: string
    enum:
    - pass
    - conditional
    - planned
    - blocked
    x-jsonld-id: https://schema.org/reviewRating
  evidence:
    oneOf:
    - type: string
      format: uri-reference
    - type: array
      items:
        type: string
        format: uri-reference
    x-jsonld-id: http://www.w3.org/ns/prov#wasDerivedFrom
    x-jsonld-type: '@id'
    x-jsonld-container: '@set'
additionalProperties: true
x-jsonld-prefixes:
  schema: https://schema.org/
  sosa: http://www.w3.org/ns/sosa/
  geosparql: http://www.opengis.net/ont/geosparql#
  dct: http://purl.org/dc/terms/
  geojson: https://purl.org/geojson/vocab#
  dqv: http://www.w3.org/ns/dqv#
  prov: http://www.w3.org/ns/prov#
  xsd: http://www.w3.org/2001/XMLSchema#
