Skip to content

Commit 71babc2

Browse files
clevinsonclaude
andauthored
Add schema.oaedata.org docs site (#18)
* update prefix for oae data protocol schema * further doc updates * update home page * docs: curated nav, explainer pages, CNAME, schema ID update Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * add JSON-LD context generation and docs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: getting started, contributing, metadata builder pages, screenshots Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * move context.jsonld copy to gendoc step Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * site title: OAE Data Protocol - Schema Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * update schema doc pages * update excel language * update root schema file to serve at schema.oaedata.org/OAEDataSchema * add styling, update variable diagram * clean up intro text, update logo * update readme --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 94aedf3 commit 71babc2

43 files changed

Lines changed: 2055 additions & 123 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ gen-examples:
125125

126126
# generates all project files
127127

128-
gen-schemas: gen-project gen-validation-schema
128+
gen-schemas: gen-project gen-validation-schema gen-context
129129

130130
gen-project: $(PYMODEL)
131131
$(RUN) gen-project ${CONFIG_YAML} -d $(DEST) $(SOURCE_SCHEMA_PATH)
@@ -147,6 +147,10 @@ ifneq ($(strip ${GEN_TS_ARGS}),)
147147
$(RUN) gen-typescript ${GEN_TS_ARGS} $(SOURCE_SCHEMA_PATH) >${DEST}/typescript/${SCHEMA_NAME}.ts
148148
endif
149149

150+
gen-context:
151+
$(RUN) gen-jsonld-context $(SOURCE_SCHEMA_PATH) > $(DEST)/jsonld/context.jsonld
152+
@echo "✓ Generated JSON-LD context"
153+
150154
gen-validation-schema:
151155
$(RUN) python -c "from linkml.generators.jsonschemagen import JsonSchemaGenerator; \
152156
gen = JsonSchemaGenerator( \
@@ -219,8 +223,17 @@ $(DOCDIR):
219223
mkdir -p $@
220224

221225
gendoc: $(DOCDIR)
222-
cp -rf $(SRC)/docs/files/* $(DOCDIR) ; \
223226
$(RUN) gen-doc ${GEN_DOC_ARGS} -d $(DOCDIR) $(SOURCE_SCHEMA_PATH)
227+
mv $(DOCDIR)/index.md $(DOCDIR)/OAEDataSchema.md
228+
cp -rf $(SRC)/docs/files/* $(DOCDIR)
229+
cp $(DEST)/jsonld/context.jsonld $(DOCDIR)/context.jsonld
230+
@# Create section directories with index pages for navigation.indexes
231+
mkdir -p $(DOCDIR)/getting-started $(DOCDIR)/projects-experiments $(DOCDIR)/datasets $(DOCDIR)/variables $(DOCDIR)/instruments-calibration
232+
mv $(DOCDIR)/getting-started.md $(DOCDIR)/getting-started/index.md
233+
mv $(DOCDIR)/projects-experiments.md $(DOCDIR)/projects-experiments/index.md
234+
mv $(DOCDIR)/datasets.md $(DOCDIR)/datasets/index.md
235+
mv $(DOCDIR)/variables.md $(DOCDIR)/variables/index.md
236+
mv $(DOCDIR)/instruments-calibration.md $(DOCDIR)/instruments-calibration/index.md
224237

225238
testdoc: gendoc serve
226239

README.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,23 @@ for producing consistent data and metadata for Ocean Alkalinity Enhancement (OAE
1111

1212
This repository provides machine-readable schemas and data standards for the protocol. It focuses on formal specifications for metadata about OAE projects, experiments, datasets, and individual data variables within datasets themselves (including instrumet, analysis, and calibration metadata).
1313

14-
**For Protocol Compliance**: As of the v1.0 protocol launch (August 25, 2025), projects seeking to comply with the protocol guidelines should use the Excel templates available on the [protocol website](http://carbontosea.org/oae-data-protocol/1-0-0/). These templates are also available in the [`templates/excel`](./templates/excel) directory of this repository.
14+
**Creating Metadata**: The easiest way to produce a valid metadata file is the [OAE Metadata Builder](https://metadata.oaedata.org) — a web app that walks you through each section and exports a JSON file validated against these schemas. Excel templates from the [v1.0 protocol launch](http://carbontosea.org/oae-data-protocol/1-0-0/) (August 25, 2025) remain available in [`templates/excel`](./templates/excel) and on the protocol website.
1515

16-
**Beta Testing**: Organizations and researchers interested in testing the software tooling under development in this repository should contact [data@carbontosea.org](mailto:data@carbontosea.org).
16+
**Beta Testing**: Organizations and researchers interested in testing the software tooling under development should contact [data@carbontosea.org](mailto:data@carbontosea.org).
1717

1818
## What's Inside
1919

2020
This repository contains [LinkML](https://linkml.io) schema definitions that can generate:
2121

2222
- **JSON Schema** for data validation and form generation
2323
- **Python dataclasses** for programmatic data handling
24+
- **JSON-LD context** for linked-data interoperability
2425
- **Documentation** (what you're reading now!)
2526
- Support for multiple serialization formats (JSON, YAML, RDF, etc.)
2627

2728
## Documentation
2829

29-
📖 **[View the schema documentation](https://submarine-mrv.github.io/oae-data-protocol)**
30+
📖 **[schema.oaedata.org](https://schema.oaedata.org)**
3031

3132
## Quick Start
3233

@@ -36,7 +37,8 @@ This repository contains [LinkML](https://linkml.io) schema definitions that can
3637

3738
The generated schemas are available in the `project/` directory:
3839

39-
- `project/jsonschema/` - JSON Schema definitions
40+
- `project/jsonschema/` - JSON Schema definitions (including `*.validation.schema.json` for runtime validation)
41+
- `project/jsonld/context.jsonld` - JSON-LD context
4042
- `src/oae_data_protocol/datamodel/` - Python dataclasses
4143

4244
## Repository Structure
@@ -72,7 +74,8 @@ make gen-project
7274

7375
```bash
7476
make help # Show all available commands
75-
make gen-project # Regenerate schemas and Python code
77+
make gen-schemas # Regenerate Python, JSON Schema, validation schema, and JSON-LD context
78+
make gen-project # Regenerate Python dataclasses and base JSON Schema only
7679
make test # Run tests
7780
make lint # Lint LinkML schemas
7881
make serve # Build and serve documentation locally

mkdocs.yml

Lines changed: 62 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,76 @@
11
---
2-
site_name: "oae-data-protocol"
2+
site_name: "OAE Data Protocol: Schema Documentation"
3+
site_url: https://schema.oaedata.org
4+
repo_url: https://github.com/submarine-mrv/oae-data-protocol
5+
36
theme:
47
name: material
5-
# palette:
6-
# scheme: slate
7-
# primary: cyan
8+
favicon: img/favicon.ico
9+
logo: img/cts-logo.png
810
features:
11+
- navigation.indexes
912
- content.tabs.link
13+
1014
plugins:
1115
- search
12-
- mermaid2
13-
- mknotebooks:
14-
execute: false
1516
- mermaid2:
1617
version: 10.9.0
17-
nav:
18-
# - Home: home.md
19-
- Index: index.md
20-
- About: about.md
21-
site_url: https://clevinson.github.io/oae-data-protocol
22-
repo_url: https://github.com/clevinson/oae-data-protocol
18+
2319
markdown_extensions:
2420
- tables
21+
- admonition
22+
- pymdownx.details
23+
- attr_list
24+
- pymdownx.superfences:
25+
custom_fences:
26+
- name: mermaid
27+
class: mermaid
28+
format: !!python/name:mermaid2.fence_mermaid_custom
29+
30+
nav:
31+
- Home: index.md
32+
- Getting Started:
33+
- getting-started/index.md
34+
- Metadata File Format: metadata-format.md
35+
- Metadata Builder: metadata-builder.md
36+
- Contributing: contributing.md
37+
- Projects & Experiments:
38+
- projects-experiments/index.md
39+
- Project: Project.md
40+
- Experiment: Experiment.md
41+
- InSituExperiment: InSituExperiment.md
42+
- Intervention: Intervention.md
43+
- Tracer: Tracer.md
44+
- InterventionWithTracer: InterventionWithTracer.md
45+
- Model: model.md
46+
- Datasets:
47+
- datasets/index.md
48+
- FieldDataset: FieldDataset.md
49+
- ModelOutputDataset: ModelOutputDataset.md
50+
- Variables:
51+
- variables/index.md
52+
- InSituVariable: InSituVariable.md
53+
- MeasuredVariable: MeasuredVariable.md
54+
- CalculatedVariable: CalculatedVariable.md
55+
- NonMeasuredVariable: NonMeasuredVariable.md
56+
- DiscretePHVariable: DiscretePHVariable.md
57+
- DiscreteTAVariable: DiscreteTAVariable.md
58+
- DiscreteDICVariable: DiscreteDICVariable.md
59+
- DiscreteCO2Variable: DiscreteCO2Variable.md
60+
- HPLCVariable: HPLCVariable.md
61+
- Instruments & Calibration:
62+
- instruments-calibration/index.md
63+
- AnalyzingInstrument: AnalyzingInstrument.md
64+
- PHInstrument: PHInstrument.md
65+
- CRMInstrument: CRMInstrument.md
66+
- CO2GasDetector: CO2GasDetector.md
67+
- Calibration: Calibration.md
68+
- Controlled Vocabularies: vocabularies.md
69+
- Full Schema Index: OAEDataSchema.md
70+
71+
extra_css:
72+
- stylesheets/extra.css
73+
2574
extra_javascript:
2675
- https://unpkg.com/tablesort@5.3.0/dist/tablesort.min.js
2776
- javascripts/tablesort.js
28-
29-
# Uncomment this block to enable use of Google Analytics.
30-
# Replace the property value with your own ID.
31-
# extra:
32-
# analytics:
33-
# provider: google
34-
# property: G-XXXXXXXXXX

0 commit comments

Comments
 (0)