glam/docs/plan/semantic_ontology/03-linkml-module-layout.md
kempersc ab5ad23699 Add parsimonious LinkML package and metadata
- Created manifest.json for the parsimonious LinkML package.
- Added metadata.yaml with detailed information about the Heritage Custodian Parsimony Ontology.
- Established directory structure for classes, enums, mappings, and slots with corresponding README files.
- Each module directory includes a brief description of its purpose and planned scale.
2026-03-13 16:48:32 +01:00

1.5 KiB

LinkML Module Layout

Package structure

Planned package:

schemas/20251121/linkml/parsimony/
  metadata.yaml
  modules/
    classes/
    slots/
    enums/
    mappings/

Layout principles

  • Keep the parsimonious package separate from the engineering package.
  • Reuse the same LinkML authoring conventions as the engineering ontology.
  • Keep slot definitions centralized under modules/slots/.
  • Keep class files small and import the slots they use.
  • Use a minimal number of files; avoid unnecessary fragmentation.

Cross-package references

When the parsimonious package references engineering files, the relative path should be computed from the parsimonious module location back to schemas/20251121/linkml/modules/.

Examples from schemas/20251121/linkml/parsimony/modules/classes/:

  • engineering class import: ../../../modules/classes/Archive.yaml
  • engineering slot import: ../../../modules/slots/hold.yaml
  • engineering mapping support file: ../../../modules/mappings/...

Examples from schemas/20251121/linkml/parsimony/modules/mappings/:

  • engineering class import: ../../../modules/classes/...
  • engineering slot import: ../../../modules/slots/...

File design guidance

  • Use a root metadata.yaml for prefixes and package-level metadata.
  • Keep a small root schema once implementation starts.
  • Reserve modules/mappings/ for explicit parsimonious-to-engineering alignment artifacts.
  • Treat mapping files as part of the ontology, not auxiliary notes.