Skip to content

Support custom JSON-LD context in generic JSON output #1678

@rob-metalinkage

Description

@rob-metalinkage

Is your feature request related to a problem? Please describe.
Documenting the meaning of feature attributes decreases ambiguity and increases interoperability. JSON-LD provides a means to do this with a reference to a context document, or an embedded context. The current JSON-LD option supports a different model - representing geometry elements in a (set of) particular structures, but does not address semantics of feature properties.

Describe the solution you'd like
Allow definition of feature properties via published JSON-LD contexts - e.g. based on the featureType (for FG-JSON).

This would be implementable in incremental steps:

  1. allow specification of a URL to inject into an @context element in the JSON
  2. allow bundling of a context document to be served as a resource and referenced by URL as per case 1
  3. Import related documentation from an OGC BuildingBlock to inject into API description
  4. Exploitation of JSON-LD context to provide end-users with descriptions of feature properties from linked ontologies.

step 1 provides the key enabler and is a non-breaking change to JSON outputs. Other functionality addresses infrastructure design - e.g. the concept of Feature Type Catalogues and could be designed separately. Code sprints for these would test potential.

Describe alternatives you've considered
Existing JSON-LD wrapper - but this changes the JSON which may cause problems and is both a less general solution and less expressive. Injecting context for the feature properties is a complementary solution, but one that can be safely applied to both the normal JSON and the extended JSON-LD feature model.

Additional context
The OGC BuildingBlocks model provides for feature schema definitions with JSON-LD contexts ready to use (and independently testable). JSON-LD contexts for OGC API data schemas are provided, along with ontologies (definitions) of structural elements, so that only feature-specific properties need to be defined.

An example of how this can be leveraged using a domain model - by carefully bundling the Features schema with the relevant properties model is here: https://ogcincubator.github.io/bblocks-examples/bblock/ogc.bbr.examples.feature.externalSchema

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requeststaleIssue marked stale by stale-bot

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions