Interop recovery scorecard#
These are real, non-canonical JSON-LD documents produced by external tools — the BattInfoConverter Excel export across six versions, two EMPA converter exports, and the Discovery RO-Crate — run through BattINFO’s interop importers. The scorecard measures how completely each one is normalized into canonical BattINFO records and JSON-LD. They are test inputs, not examples to copy.
The scores come from scripts/gen_interop_recovery.py and are asserted by
tests/test_interop_recovery.py, so a drop in recovery quality fails CI and
changes a cell here. This page is generated; regenerate it with
uv run python scripts/gen_interop_recovery.py.
Across 9 sources and 6 dimensions: 🟢 54 full · 🟡 0 partial · 🔴 0 none, out of 54.
Legend: 🟢 full · 🟡 partial · 🔴 none.
Source |
Shape |
Ingest |
Normalize |
Identity |
Quantities |
Components |
Canonical JSON-LD |
|---|---|---|---|---|---|---|---|
Converter Excel v1.0.0 |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
Converter Excel v1.1.2 |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
Converter Excel v1.1.8 |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
Converter Excel v1.1.11 |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
Converter Excel v1.1.15 |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
Converter Excel v1.1.17 |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
EMPA converter sample |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
EMPA reference v3 |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
Discovery RO-Crate (.eln) |
|
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
🟢 |
What the columns mean#
Ingest — the file parses, tolerating the bare
NaNsome emitters write for empty ids.Normalize — the document’s shape is recognised and a canonical cell spec comes out.
Identity — cell identity is recovered (id, name, format; manufacturer/chemistry/model where present).
Quantities — measured value+unit quantities are recovered into the canonical records.
Components — electrodes, materials, and electrolytes come out as standalone component specs.
Canonical JSON-LD — every record validates against the canonical schema and emits BattINFO JSON-LD.
Per-source detail#
Each source expands to its per-dimension result and a short source-to-canonical comparison.
🟢🟢🟢🟢🟢🟢 Converter Excel v1.0.0
Fixture: tests/fixtures/interop/converter-versions/converter-v1.0.0.coincell.jsonld
Importer: battinfo.interop.import_converter_package
Shape in: cell-root · records out: 12
🟢 Ingest — parsed after repairing bare NaN/Infinity.
🟢 Normalize — cell-root → 12 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 51 value+unit quantities.
🟢 Components — 6 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 12 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Records |
1 document |
1× cell_spec, 1× cell_instance, 1× electrode_spec, 3× material_spec, 1× electrolyte_spec, 1× separator_spec, 2× test, 2× test_spec |
Quantities kept |
44 property nodes |
51 value+unit |
🟢🟢🟢🟢🟢🟢 Converter Excel v1.1.2
Fixture: tests/fixtures/interop/converter-versions/converter-v1.1.2.coincell.jsonld
Importer: battinfo.interop.import_converter_package
Shape in: cell-root · records out: 12
🟢 Ingest — parsed after repairing bare NaN/Infinity.
🟢 Normalize — cell-root → 12 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 56 value+unit quantities.
🟢 Components — 6 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 12 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Records |
1 document |
1× cell_spec, 1× cell_instance, 1× electrode_spec, 3× material_spec, 1× electrolyte_spec, 1× separator_spec, 2× test, 2× test_spec |
Quantities kept |
44 property nodes |
56 value+unit |
🟢🟢🟢🟢🟢🟢 Converter Excel v1.1.8
Fixture: tests/fixtures/interop/converter-versions/converter-v1.1.8.coincell.jsonld
Importer: battinfo.interop.import_converter_package
Shape in: cell-root · records out: 12
🟢 Ingest — parsed after repairing bare NaN/Infinity.
🟢 Normalize — cell-root → 12 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 57 value+unit quantities.
🟢 Components — 6 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 12 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Records |
1 document |
1× cell_spec, 1× cell_instance, 1× electrode_spec, 3× material_spec, 1× electrolyte_spec, 1× separator_spec, 2× test, 2× test_spec |
Quantities kept |
44 property nodes |
57 value+unit |
🟢🟢🟢🟢🟢🟢 Converter Excel v1.1.11
Fixture: tests/fixtures/interop/converter-versions/converter-v1.1.11.coincell.jsonld
Importer: battinfo.interop.import_converter_package
Shape in: cell-root · records out: 14
🟢 Ingest — parsed after repairing bare NaN/Infinity.
🟢 Normalize — cell-root → 14 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 61 value+unit quantities.
🟢 Components — 8 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 14 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Positive active material |
LithiumNickelManganeseCobaltOxide |
NMC |
Active mass fraction |
96 PERCENT |
96 % |
Areal mass loading |
6.6 MilliGM-PER-CentiM2 |
6.6 mg/cm2 |
Coating thickness |
16 MicroMetre |
16 um |
Records |
1 document |
1× cell_spec, 1× cell_instance, 2× electrode_spec, 4× material_spec, 1× electrolyte_spec, 1× separator_spec, 2× test, 2× test_spec |
Quantities kept |
45 property nodes |
61 value+unit |
🟢🟢🟢🟢🟢🟢 Converter Excel v1.1.15
Fixture: tests/fixtures/interop/converter-versions/converter-v1.1.15.coincell.jsonld
Importer: battinfo.interop.import_converter_package
Shape in: cell-root · records out: 14
🟢 Ingest — parsed after repairing bare NaN/Infinity.
🟢 Normalize — cell-root → 14 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 64 value+unit quantities.
🟢 Components — 8 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 14 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Positive active material |
LithiumNickelManganeseCobaltOxide |
NMC |
Active mass fraction |
96 PERCENT |
96 % |
Areal mass loading |
6.6 MilliGM-PER-CentiM2 |
6.6 mg/cm2 |
Coating thickness |
16 MicroMetre |
16 um |
Records |
1 document |
1× cell_spec, 1× cell_instance, 2× electrode_spec, 4× material_spec, 1× electrolyte_spec, 1× separator_spec, 2× test, 2× test_spec |
Quantities kept |
46 property nodes |
64 value+unit |
🟢🟢🟢🟢🟢🟢 Converter Excel v1.1.17
Fixture: tests/fixtures/interop/converter-versions/converter-v1.1.17.coincell.jsonld
Importer: battinfo.interop.import_converter_package
Shape in: cell-root · records out: 14
🟢 Ingest — parsed after repairing bare NaN/Infinity.
🟢 Normalize — cell-root → 14 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 64 value+unit quantities.
🟢 Components — 8 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 14 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Positive active material |
LithiumNickelManganeseCobaltOxide |
NMC |
Active mass fraction |
96 PERCENT |
96 % |
Areal mass loading |
6.6 MilliGM-PER-CentiM2 |
6.6 mg/cm2 |
Coating thickness |
16 MicroMetre |
16 um |
Records |
1 document |
1× cell_spec, 1× cell_instance, 2× electrode_spec, 4× material_spec, 1× electrolyte_spec, 1× separator_spec, 2× test, 2× test_spec |
Quantities kept |
46 property nodes |
64 value+unit |
🟢🟢🟢🟢🟢🟢 EMPA converter sample
Fixture: tests/fixtures/converter/coin-cell.converter.sample.jsonld
Importer: battinfo.interop.import_converter_package
Shape in: cell-root · records out: 10
🟢 Ingest — parsed as-is.
🟢 Normalize — cell-root → 10 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 43 value+unit quantities.
🟢 Components — 8 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 10 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Positive active material |
LithiumNickelManganeseCobaltOxide |
NMC |
Active mass fraction |
96 PERCENT |
96 % |
Areal mass loading |
6.6 MilliGM-PER-CentiM2 |
6.6 mg/cm2 |
Coating thickness |
16 MicroMetre |
16 um |
Records |
1 document |
1× cell_spec, 1× cell_instance, 2× electrode_spec, 4× material_spec, 1× electrolyte_spec, 1× separator_spec |
Quantities kept |
35 property nodes |
43 value+unit |
🟢🟢🟢🟢🟢🟢 EMPA reference v3
Fixture: tests/fixtures/converter/coincell_reference_v3.jsonld
Importer: battinfo.interop.import_converter_package
Shape in: cell-root · records out: 14
🟢 Ingest — parsed as-is.
🟢 Normalize — cell-root → 14 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 64 value+unit quantities.
🟢 Components — 8 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 14 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Positive active material |
LithiumNickelManganeseCobaltOxide |
NMC |
Active mass fraction |
96 PERCENT |
96 % |
Areal mass loading |
6.6 MilliGM-PER-CentiM2 |
6.6 mg/cm2 |
Coating thickness |
16 MicroMetre |
16 um |
Records |
1 document |
1× cell_spec, 1× cell_instance, 2× electrode_spec, 4× material_spec, 1× electrolyte_spec, 1× separator_spec, 2× test, 2× test_spec |
Quantities kept |
46 property nodes |
64 value+unit |
🟢🟢🟢🟢🟢🟢 Discovery RO-Crate (.eln)
Fixture: tests/fixtures/interop/discovery/ro-crate-metadata.sample.json
Importer: battinfo.interop.import_discovery_eln
Shape in: @graph[23] · records out: 36
🟢 Ingest — parsed as-is.
🟢 Normalize — @graph[23] → 36 canonical records; cell format ‘coin’.
🟢 Identity — id, name, format + manufacturer, chemistry, model.
🟢 Quantities — 44 value+unit quantities.
🟢 Components — 16 component specs (materials/electrodes/electrolytes).
🟢 Canonical JSON-LD — all 36 records validate and emit canonical JSON-LD.
Source file |
Canonical output |
|
|---|---|---|
Positive active material |
LithiumNickelManganeseCobaltOxide |
NMC811 |
Active mass fraction |
0.945 |
0.945 1 |
Areal mass loading |
20.3175 MilliGramPerSquareCentiMetre |
20.3175 mg/cm2 |
Compaction density |
2.8 GramPerCubicCentiMetre |
2.8 g/cm3 |
Areal capacity |
13.752 CoulombPerSquareCentiMetre |
3.82 mAh/cm2 |
Specific capacity |
676800 CoulombPerKilogram |
188 mAh/g |
Cell mass |
18.7729 MilliGram |
18.7729 mg |
Records |
23-node crate |
5× cell_spec, 5× cell_instance, 7× electrode_spec, 7× material_spec, 2× electrolyte_spec, 5× test, 5× dataset |
Quantities kept |
51 property nodes |
44 value+unit |