This repository is the source for OGC Building Blocks supporting the ILIAD Ocean Digital Twin APIs. Building blocks encode marine data standards, vocabularies, and schemas for interoperable data exchange.
An OGC building block source repository for ILIAD marine APIs. Building blocks define how marine datasets are structured, semantically annotated, and validated. They are used to generate catalog-ready metadata (STAC, DCAT) and to publish data to OGC API Features endpoints.
Each building block lives under _sources/<block-name>/ and must contain:
_sources/<block-name>/
├── bblock.json # OGC metadata (id, title, abstract, status, dependencies)
├── schema.json or schema.yaml # JSON Schema for feature validation
├── context.jsonld # JSON-LD semantic context with vocabulary mappings
├── description.json # Dataset description (NOT README.md)
├── examples/
│ ├── sample.geojson # GeoJSON example(s)
│ └── sample.jsonfg # JSON-FG example with OIM enrichment
├── transforms/ # Optional YARRRML / RML transform definitions
└── tests/
└── test.yaml # Validation test cases
Important conventions:
- Put dataset description in
description.json, notREADME.md - Use
schema.jsonorschema.yaml(not both) - All example properties must have
@identries incontext.jsonld
Local validation and artifact generation:
docker run --rm \
-v $(pwd):/workspace \
-w /workspace \
ogcincubator/bblocks-postprocess:latest \
python -m bblocks.process_config . --split-docs --base-url=http://localhostThis produces build-local/ artifacts (HTML docs, JSON schemas, RDF). The build/ directory contains the published artifacts.
For a quick build:
./build.shPrimary workflows are handled by agents in .claude/agents/:
-
Marine data → Building Block
- Start with
marine-content-specialistto discover and profile marine data - It calls
marine-data-agentto retrieve samples from HELCOM/EMODnet/ICES/OBIS - It calls
building-block-generatorto create the OGC building block package - Validation is coordinated via
marine-workflow-orchestrator
- Start with
-
Data source → Metadata (STAC/DCAT)
- Start with
metadata-dispatcherfor any URL, file, or inline sample - It routes to format-specific agents:
stac-metadata-generator,dcat-metadata-generator,csv-to-stac-converter,csv-to-dcat-converter
- Start with
| Command | Purpose |
|---|---|
/validate-bblock <path> |
Validate a building block via Docker |
/generate-metadata <url|path> |
Generate STAC/DCAT from a data source |
/geojson-to-jsonfg <path> [profile] |
Convert GeoJSON to JSON-FG with OIM |
/marine-bblock <theme> [sources] |
Discover marine data and generate building block |
/vocprez-annotation <ttl-path> |
Add DCAT/SKOS annotations for VocPrez |
When mapping data properties to semantic vocabularies, use this priority order:
- NERC — http://vocab.nerc.ac.uk/collection/ (physical/biological parameters)
- CF Convention — climate/forecast standard names
- Darwin Core — http://rs.tdwg.org/dwc/terms/ (species, occurrence)
- OBIS / WoRMS — marine species and taxonomy
- ICES — http://vocab.ices.dk/ (fish stocks, areas, categories)
- EMODnet — thematic classifications
- OGC/ISO — geospatial standards
- schema.org — last resort only
_sources/— building block source filesbuild/— published artifacts (generated, do not edit)build-local/— local validation artifacts (generated, do not edit)bblocks-config.yaml— repository-level OGC building blocks configurationPROFILES.md— OIM profile definitions (oim, oim-obs, oim-bio-tdwg)USAGE.md— user-facing workflow documentation