This repository hosts the shared core building blocks for CDIF: modular JSON Schema components for schema.org properties, CDIF-specific extensions, PROV-O provenance, W3C SKOS controlled vocabularies, and the DDI-CDI structural family. Building blocks compose into profiles that define complete metadata schemas for specific use cases (Discovery, Data Description, Data Structure, Codelist, Complete, XAS). The pattern follows the OGC Building Blocks conventions.
Two views
JSON Schema Building Blocks Viewer →
Browse the JSON Schema implementation of every building block and profile. Filter by category; drill into resolved schemas, JSON-LD contexts, SHACL rules, and example instances. Backed by the OGC bblocks postprocessor.
UML Profile Model Browser →
Browse the UML class model per CDIF profile: class definitions, attribute and association tables, inheritance, embedded PlantUML diagrams, and cross-profile links. Derived from the DDI-CDI canonical UML via the cdif-ucmism2m configurations (see Related repositories below).
What's in the repo
Building block categories under _sources/:
schemaorgProperties/— schema.org vocabulary (person, organization, identifier, definedTerm, instrument, ...)cdifProperties/— CDIF-specific properties (core, provenance, instance variables, data structures, OpenAPI WebAPI, cdif:Reference, ...)skosProperties/— W3C SKOS controlled vocabulary (Concept, ConceptScheme, Collection)provProperties/— PROV-O provenance (generatedBy, derivedFrom, provActivity)ddiProperties/— DDI-CDI vocabulary building blocksddiCDIFProperties/— DDI-CDI CDIF-flavored extensionsqualityProperties/— DQV data quality measuresxasProperties/— X-ray Absorption Spectroscopy domainprofiles/cdifProfiles/— assembled CDIF profiles
Tooling under tools/: uml_to_schema.py
(UML → JSON Schema BB generator; also emits the UML profile model browser),
resolve_schema.py (modular YAML → resolvedSchema.json),
convert_for_jsonforms.py (resolved → JSON Forms),
generate_custom_report.py (SHACL severity report).
Machine-readable resources
- register.json — master registry of all building blocks and profiles
- bblocks.jsonld — register in JSON-LD
- bblocks.ttl — register in RDF/Turtle
- build/generateddocs/markdown/ — per-BB markdown documentation
- build/tests/report.html — validation report (JSON Schema + SHACL)
- cdif-uml-model/_registry.json — cross-profile class name → profile registry (used by the UML browser)
Persistent URIs
Every building block has a stable identifier under
https://w3id.org/cdif/bbr/metadata/{category}/{name} with content negotiation
(HTML landing page, JSON Schema, SHACL Turtle, JSON-LD context). See the
README
for the full URI scheme and Accept-header table.
Related repositories
- metadataBuildingBlocks — source repo (you are here)
- cdif-ucmism2m — JSON-config-driven UML transformations that produce the per-profile UML used by the model browser
- ddeBuildingBlocks — DDE (Deep-time Digital Earth) geoscience properties (7 BBs + 11 profiles)
- geochemBuildingBlocks — IEDA ADA geochemistry (30 BBs + 36 profiles)
- ecrrBuildingBlocks — EarthCube Resource Registry (10 BBs + 11 profiles)