{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Observation",
  "description": "A scientific observation or measurement, profiling the SOSA/SSN Observation rather than\nredefining it: `observedProperty`, `madeBySensor`, `hasFeatureOfInterest`,\n`hasResult`/`hasSimpleResult` and `resultTime`/`phenomenonTime` all come from\n`ogc.sosa.properties.observation`. This block only narrows `hasFeatureOfInterest` from\noptional to required, since every reading in this register is expected to reference the\n`heritage-object` or `place` it was taken of/at by URI (the CIDOC-CRM/CRMsci \"scientific\nobservation context\"), and sets `type` so the uplifted graph is actually typed\n`sosa:Observation` (the profiled block's own examples never set it). For observations that\nneed their own geometry independent of an existing `place`, compose the properties from this\nblock inside `ogc.sosa.features.observation` instead.\n",
  "allOf": [
    {
      "$ref": "https://opengeospatial.github.io/ogcapi-sosa/build/annotated/sosa/properties/observation/schema.json"
    },
    {
      "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/"
  }
}