Schema Developer FAQs
Some frequently asked questions about developing the NMDC Schema.
What are some effective strategies for collaborative schema development?
LinkML Collaborative Development Google Slides Presentation
How do I migrate from one version of the NMDC schema to another?
How do I view the NMDC schema programmatically?
NMDC SchemaView Documentation SchemaView Documentation
Where is the OWL generation documentation?
OWL Generation -- covers current build process, recommended config, CLI/YAML flag mapping, portal submission guidance, and upcoming LinkML changes.
What are LinkML readonly metaslots and why shouldn't I assert them?
The LinkML metamodel defines 12 readonly slots that are automatically populated
by the schema loader or generators: definition_uri, domain_of, from_schema,
generation_date, imported_from, is_usage_slot, metamodel_version, owner,
source_file, source_file_date, source_file_size, usage_slot_name.
Do not add these to hand-edited schema YAML files under src/schema/. The
loader fills them in at runtime, so asserting them is redundant and can cause
confusion when values drift from what the loader would compute.
For generated files like src/schema/mixs.yaml, the MIxS build pipeline
(makefiles/mixs.Makefile) strips all 12 readonly slots via yq eval as part
of the dematerialization step
(PR #2696).
What architectural changes were made between Oct 2025 and Feb 2026?
| Date | PR | Change |
|---|---|---|
| 2026-02-26 | #2848 | Makefile reorganization: MIxS pipeline moved to makefiles/mixs.Makefile, migrator targets to makefiles/migrators.Makefile. RDF conversion tooling removed. |
| 2026-02-26 | #2849 | LinkML 1.10.0 upgrade: new OWL flags (--enum-inherits-as-subclass-of), Python 3.9 dropped. |
| 2026-02-26 | #2846 | Dead code removal: about.yaml and experimental scripts removed. |
| 2026-02-21 | #2302 | Downloads page: schema-derived JSON and YAML files downloadable via docs website. |
| 2026-02-20 | #2839 | Unified LinkML CLI: build uses linkml generate owl, linkml generate json-schema, etc. instead of legacy gen-owl, gen-json-schema. |
| 2025-10-28 | #2696 | Dematerialize mixs.yaml: all 12 readonly metaslots stripped from generated mixs.yaml (35% line reduction). |