Allotrope ADF¶
Status: Experimental · Vendor: Allotrope Foundation · Extensions:
.adf· Feature flag:fmt-hdf5
ADF (Allotrope Data Format) is the Allotrope Foundation’s HDF5-based container for analytical data cubes plus an RDF semantic description. This reader covers a narrow data-cube subset and decodes a small, defensive slice of the RDF triplestore. It is local-fixture only while redistributable and vendor ADF files are sourced.
Instruments & software¶
Produced by Allotrope-aware analytical software and conversion tools. Validation
currently relies on a single local adfsee demonstration file; vendor
instrumental ADF exports (Waters, Sciex, Agilent, Bruker, …) are not yet
available.
File structure¶
Detected by an .adf extension plus the HDF5 magic (\x89HDF\r\n\x1a\n); the
ADF structure is validated on read. Decoding uses the pure-Rust hdf5-reader
crate (gated behind fmt-hdf5) through the shared HDF5 helper, which also routes
external-file references via the sidecar resolver. The reader requires the four
core ADF groups: /data-cubes, /data-description, /data-package and
/named-graphs.
For each cube under /data-cubes, numeric datasets under measures become
records. A 1-D dataset under scales whose length matches the primary measure
dimension is used as the x axis; otherwise a generated index axis is used.
Two-dimensional measures are split into one record per secondary column.
The reader additionally decodes the RDF triplestore in
/data-description/dictionary (a byte store + 13-byte key rows) and
/data-description/quads (a 5-column subject/predicate/object table indexed into
the dictionary), promoting cube titles/labels/descriptions, measure component
types and primary/secondary scale component types when the expected ADF mapping
pattern is present. Unknown mappings fall back to conservative IDs and warnings.
What nirs4all-formats extracts¶
Signals — numeric
measuresdatasets. Theadfseefixture mapsAbsorbanceUnitValuemeasures to anabsorbancesignal inmAU; other component types yield anUnknown-typed signal named from the measure ID.Axis — a matching
scalesdataset or a generated index axis.SecondTimeValuescales become a seconds axis typedTime;NanometerValuescales become annmwavelength axis (used as the secondary axis for split 2-D records).Metadata — cube ID, measure ID/shape, axis source/unit/kind, scale IDs, ADF component types, axis order, and decoded cube titles/labels/descriptions.
Provenance & warnings — always
allotrope_adf_reverse_engineered_data_cube_subset, plusallotrope_adf_rdf_semantics_partially_mapped/..._not_resolved(and a decode-failure warning if the RDF slice cannot be read).
Variants & support status¶
Variant |
Status |
Notes |
|---|---|---|
1-D numeric data cube |
Experimental |
One record per measure on its scale or a generated index axis. |
2-D data cube |
Experimental |
Split into one record per secondary column. |
RDF semantics (titles, component types) |
Experimental |
Defensive subset of dictionary + quads; conservative fallback otherwise. |
Vendor instrumental ADF |
Planned |
Waters/Sciex/Agilent/etc. exports not yet sourced. |
Limitations & known gaps¶
Not a full Allotrope implementation: only the narrow data-cube subset and a defensive RDF slice are decoded.
The full ADF ontology, complete quantity/unit/dimension resolution and SDK / reference-reader validation are pending.
No vendor instrumental ADF exports are available, and the only fixture is local-only (governed by Allotrope terms), so this cannot run in CI.
The JSON Simple Model (ASM) path is separate — see
allotrope-asm.
Reference readers¶
The Allotrope SDK and the adfsee inspection tool; full conformance awaits
redistributable fixtures and ontology resolution.
Samples & validation¶
Fixture: samples_local/allotrope_adf/adfsee_example.adf (4 records from 3
numeric cubes, including one 2-column measure; generated-index or seconds scale
with a secondary 250/400 nm axis for the 2-D UV spectrum; mAU absorbance).
The file is not committed because the ADF data package and ontologies remain
governed by Allotrope terms even though adfsee is an open inspection tool; CI
skips this test when samples_local/ is absent. The probe reports
allotrope-adf at Confidence::Likely.