Skip to content

SensorML 3.0 Specification Audit #23

Description

@Sam-Bolling

SensorML 3.0 Specification Audit

Document Information

Related Standards

  • SWE Common 3.0: OGC 24-014 (Draft)
  • GeoPose 1.0: OGC 21-056r11
  • ISO 19115: Geographic information — Metadata

Media Types

  • JSON Encoding: application/sml+json
  • Draft Media Type: application/vnd.ogc.sml+json

✅ Audit Status: COMPLETED

Completion Date: 2026-01-27
Compliance Level: ~75% (Core types complete, advanced features missing)

Summary

  • ✅ All core process types implemented (PhysicalSystem, PhysicalComponent, SimpleProcess, AggregateProcess)
  • ✅ Parser with format detection working
  • ✅ Type guards and runtime validation
  • ✅ Good test coverage
  • ⚠️ Limited position type resolution
  • ❌ No JSON Schema validation
  • ❌ Missing advanced types (Event, Link, Capabilities, Characteristics)

Detailed Findings

See audit comment below for complete implementation status.


🎯 Implementation Checklist

Core Types

  • DescribedObject (Clause 8.2.2)
  • AbstractProcess (Clause 8.2.9)
  • SimpleProcess (Clause 8.3)
  • AggregateProcess (Clause 8.4)
  • PhysicalComponent (Clause 8.5)
  • AbstractPhysicalProcess (Clause 8.5.1)
  • PhysicalSystem (Clause 8.6)
  • Event (Clause 8.7)
  • Link (Clause 8.8)
  • Deployment (Clause 8.9)
  • DerivedProperty (Clause 8.10)

Supporting Types

  • XLink
  • Identifier
  • Classifier
  • Keyword
  • Contact
  • Document
  • Constraint
  • ValidTime
  • CapabilityList (Clause 8.2.8)
  • CharacteristicList (Clause 8.2.7)
  • Feature (Clause 8.2.5)
  • Observation (Clause 8.2.6)

Parsers & Validators

  • SensorML parser (SystemParser.parseSensorML)
  • Format detection
  • GeoJSON conversion
  • JSON Schema validation
  • Type guards

Position Handling

  • Point geometry
  • Pose (lat/lon/h)
  • TextComponent resolution
  • AbstractProcess resolution
  • XLink resolution
  • VectorComponent resolution
  • DataRecordComponent resolution
  • DataArrayComponent resolution

Testing

  • Parser tests
  • Format detection tests
  • Type guard tests
  • Schema validation tests
  • Conformance tests

🔧 Priority Recommendations

HIGH Priority

  1. JSON Schema Validation: Implement validation against official OGC schemas at https://schemas.opengis.net/sensorML/3.0/json/

MEDIUM Priority

  1. Full Position Resolution: Implement resolution for all Position type variants (TextComponent, Process, XLink, SWE components)
  2. Missing Types: Add Event, Link, CapabilityList, CharacteristicList as use cases emerge

LOW Priority

  1. Conformance Documentation: Document which OGC 23-000 conformance classes (Annex A) are supported

📚 Implementation References

Code Locations

  • Type Definitions: src/ogc-api/csapi/sensorml/
  • Parser: src/ogc-api/csapi/parsers/base.ts
  • Format Detection: src/ogc-api/csapi/formats.ts
  • Tests: src/ogc-api/csapi/parsers/base.spec.ts, src/ogc-api/csapi/formats.spec.ts

Key Files


📖 Standard Structure

Part 1: Overview (Clauses 1-7)

  • Clause 1: Scope
  • Clause 2: Conformance
  • Clause 3: References
  • Clause 4: Terms and Definitions
  • Clause 5: Conventions
  • Clause 6: General Model Overview
  • Clause 7: Requirements Classes Overview

Part 2: Core Types (Clause 8)

  • 8.2: Core Packages
    • 8.2.2: DescribedObject
    • 8.2.5: Feature
    • 8.2.6: Observation
    • 8.2.7: CharacteristicList
    • 8.2.8: CapabilityList
    • 8.2.9: AbstractProcess
  • 8.3: SimpleProcess
  • 8.4: AggregateProcess
  • 8.5: PhysicalComponent
  • 8.5.1: AbstractPhysicalProcess
  • 8.6: PhysicalSystem
  • 8.7: Event
  • 8.8: Link
  • 8.9: Deployment
  • 8.10: DerivedProperty

Part 3: Requirements and Conformance (Annexes)

  • Annex A: Conformance Classes
  • Annex B: Requirements
  • Annex C: Examples

Last Updated: 2026-01-27
Audit Performed By: GitHub Copilot
Standard Version: OGC 23-000 (Published)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions