Part of the "Read and write LinkML schema for HDMF (CSRMatrix / base.yaml)" epic
Decide and document how a limited subset of HDMF Schema Language (HDMFSL) constructs map to LinkML. The deliverable is a mapping-conventions document; translating the schemas and building the reader are later issues that depend on this one. The conventions are defined against the specific constructs used by base.yaml and CSRMatrix (sparse.yaml).
The document defines a LinkML representation, with rationale, for:
data_type_def / data_type_inc — defined types and inheritance, and how the reader tells a GroupSpec from a DatasetSpec.
- The group / dataset / attribute distinction — must survive in the LinkML so the reader can rebuild the right
Spec subclass.
- Object naming and identity — fixed
name, default_name, and unnamed types.
- dtypes — HDMFSL dtypes to LinkML ranges without losing precision, plus the no-dtype case.
- Arrays (
dims / shape) — fixed, unspecified (null), and multiple-allowed shapes via the arrays metamodel; dimension naming.
quantity — 1 / ? / * / + to required / multivalued.
- Namespace level — how an HDMFSL
namespace.yaml (its name, version, metadata, and list of schema files) maps to LinkML, including how the per-file schemas relate to the namespace. Cross-namespace imports are out of scope here.
Acceptance criteria
Part of the "Read and write LinkML schema for HDMF (CSRMatrix / base.yaml)" epic
Decide and document how a limited subset of HDMF Schema Language (HDMFSL) constructs map to LinkML. The deliverable is a mapping-conventions document; translating the schemas and building the reader are later issues that depend on this one. The conventions are defined against the specific constructs used by
base.yamlandCSRMatrix(sparse.yaml).The document defines a LinkML representation, with rationale, for:
data_type_def/data_type_inc— defined types and inheritance, and how the reader tells aGroupSpecfrom aDatasetSpec.Specsubclass.name,default_name, and unnamed types.dims/shape) — fixed, unspecified (null), and multiple-allowed shapes via the arrays metamodel; dimension naming.quantity—1/?/*/+torequired/multivalued.namespace.yaml(its name, version, metadata, and list of schema files) maps to LinkML, including how the per-file schemas relate to the namespace. Cross-namespace imports are out of scope here.Acceptance criteria
docs/source/linkml-mapping.rst, covering the constructs above with rationale and noting that this is not a complete mapping of all HDMFSL constructs.Specobjects HDMF loads from the test namespace (base.yamlandsparse.yaml) via the namespace/catalog path.