{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://b2base.eu/schemas/1.0.0-draft.1/reporting/observation.schema.json", "title": "Messwerte und Kennzahlen", "$comment": "B2Base 1.0.0-draft.1. Projektentwurf, kein durch ISO oder andere Normungsgremien verabschiedeter Standard.", "type": "object", "description": "Eine einzelne Beobachtung; keine unbeschriftete Zahl.", "properties": { "id": { "type": "string", "minLength": 1, "description": "Beobachtungskennung.", "format": "uri" }, "metric": { "$ref": "#/$defs/CodedValue", "description": "Definition der Messgröße oder Kennzahl." }, "quantity": { "$ref": "#/$defs/Quantity" }, "observedAt": { "type": "string", "minLength": 1, "description": "Zeitpunkt der Beobachtung.", "format": "date-time" }, "subjectRef": { "type": "string", "minLength": 1, "description": "Bezugsobjekt.", "format": "uri" }, "source": { "type": "string", "minLength": 1, "description": "Herkunft der Beobachtung.", "format": "uri" }, "quality": { "$ref": "#/$defs/CodedValue", "description": "Optionaler Qualitäts- oder Schätzstatus." }, "extensions": { "type": "object", "description": "Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern.", "properties": {}, "additionalProperties": true, "propertyNames": { "format": "uri" } } }, "required": [ "id", "metric", "quantity", "observedAt" ], "additionalProperties": false, "$defs": { "CodedValue": { "type": "object", "description": "Fachlicher Code mit benanntem Vokabular.", "properties": { "value": { "type": "string", "minLength": 1, "description": "Code aus dem bezeichneten Vokabular; als Text unverändert übernehmen." }, "scheme": { "type": "string", "minLength": 1, "description": "Absolute URI des Vokabulars, einschließlich einer Version, falls dessen Bedeutung veränderlich ist.", "format": "uri" }, "label": { "type": "string", "minLength": 1, "description": "Optionale lesbare Bezeichnung." }, "language": { "$ref": "#/$defs/LanguageTag", "description": "Sprache der Bezeichnung, nicht Staatsangehörigkeit." } }, "required": [ "value", "scheme" ], "additionalProperties": false }, "LanguageTag": { "type": "string", "minLength": 1, "description": "BCP-47-Sprachtag, etwa de, zh-Hant-TW, sr-Latn oder x-internal. Das Muster prüft nur die Grundform, nicht Registrierung oder alle BCP-47-Regeln.", "pattern": "^[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*$" }, "Quantity": { "type": "object", "description": "Dezimalwert mit maschinenlesbarer Einheit; die Einheit muss zum Messgegenstand passen.", "properties": { "value": { "type": "string", "minLength": 1, "description": "Dezimaltext ohne Gruppierung oder Exponent.", "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?$" }, "unitCode": { "type": "string", "minLength": 1, "description": "Code aus dem angegebenen Einheitensystem, etwa MTR, KGM oder MTK nach UN/CEFACT Recommendation 20." }, "unitScheme": { "type": "string", "minLength": 1, "description": "URI des Einheitensystems; Empfänger muss das System unterstützen.", "format": "uri" } }, "required": [ "value", "unitCode", "unitScheme" ], "additionalProperties": false } }, "examples": [ { "id": "urn:example:observation:42", "metric": { "value": "mass", "scheme": "https://example.org/metrics/v1" }, "quantity": { "value": "12.75", "unitCode": "KGM", "unitScheme": "https://unece.org/code-list-recommendations" }, "observedAt": "2026-09-08T08:00:00Z" } ] }