The only cross-implementation check between this toolbox and openMINDS_Python is InteropTest, which lives here, builds one six-node fixture on both sides and compares. It is one-sided: the Python project does not run it, and nothing outside MATLAB ever reads a document for most types. That is how a required property of GridImageStack was exported under the wrong name for years (fixed on branch fix-schema-property-name-map-and-subsref-fallback): the round-trip suite compared MATLAB output with MATLAB output, and the interop fixture did not contain the type.
The Python library has the mirror-image gaps: its random round-trip test never populates IRI, date or bool properties, and its behaviour for @type as a list, expanded IRIs as keys and datetime text in date properties was each fixed as a separate regression after a user hit it.
Proposal: a language-neutral conformance corpus, ideally in the openMINDS organisation rather than in either implementation:
- a set of JSON-LD documents, each with a short statement of what a conforming reader must produce (nodes, links, values) and what a conforming writer must emit for the same collection;
- covering every property type and format the schemas use, embedded and linked values, mixed-type properties, references outside the document, both property-name syntaxes,
@type as list, and one document per model version;
- consumed by both CI pipelines, so a change on either side that breaks the contract fails there.
The existing tools/tests/fixtures/interop_collection.json and tools/tests/interop/openminds_interop.py are a starting point. Until an upstream home exists, the corpus could live here and be pointed at from the Python repo.
🤖 Generated with Claude Code
The only cross-implementation check between this toolbox and openMINDS_Python is
InteropTest, which lives here, builds one six-node fixture on both sides and compares. It is one-sided: the Python project does not run it, and nothing outside MATLAB ever reads a document for most types. That is how a required property ofGridImageStackwas exported under the wrong name for years (fixed on branchfix-schema-property-name-map-and-subsref-fallback): the round-trip suite compared MATLAB output with MATLAB output, and the interop fixture did not contain the type.The Python library has the mirror-image gaps: its random round-trip test never populates IRI, date or bool properties, and its behaviour for
@typeas a list, expanded IRIs as keys anddatetimetext in date properties was each fixed as a separate regression after a user hit it.Proposal: a language-neutral conformance corpus, ideally in the openMINDS organisation rather than in either implementation:
@typeas list, and one document per model version;The existing
tools/tests/fixtures/interop_collection.jsonandtools/tests/interop/openminds_interop.pyare a starting point. Until an upstream home exists, the corpus could live here and be pointed at from the Python repo.🤖 Generated with Claude Code