$schema: https://json-schema.org/draft/2020-12/schema
title: Observation
description: 'A scientific observation or measurement, profiling the SOSA/SSN Observation
  rather than

  redefining it: `observedProperty`, `madeBySensor`, `hasFeatureOfInterest`,

  `hasResult`/`hasSimpleResult` and `resultTime`/`phenomenonTime` all come from

  `ogc.sosa.properties.observation`. This block only narrows `hasFeatureOfInterest`
  from

  optional to required, since every reading in this register is expected to reference
  the

  `heritage-object` or `place` it was taken of/at by URI (the CIDOC-CRM/CRMsci "scientific

  observation context"), and sets `type` so the uplifted graph is actually typed

  `sosa:Observation` (the profiled block''s own examples never set it). For observations
  that

  need their own geometry independent of an existing `place`, compose the properties
  from this

  block inside `ogc.sosa.features.observation` instead.

  '
allOf:
- $ref: https://opengeospatial.github.io/ogcapi-sosa/build/annotated/sosa/properties/observation/schema.yaml
- type: object
  required:
  - id
  - hasFeatureOfInterest
  - crmsciType
  properties:
    type:
      const: Observation
      x-jsonld-id: '@type'
    crmsciType:
      type: string
      const: crmsci:S4
      description: "Fixed HDTO co-type. Maps via context directly to rdf:type, alongside
        sosa:Observation \u2014 additive, per D7.1's own OGC SensorThings API crosswalk
        table (Table 1, p.28: STA Observation, the same concept sosa:Observation already
        models, targets crmsci:S4)."
      x-jsonld-id: http://www.w3.org/1999/02/22-rdf-syntax-ns#type
      x-jsonld-type: '@id'
x-jsonld-prefixes:
  rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
  crmsci: http://www.cidoc-crm.org/extensions/crmsci/
