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

cell-root

🟢

🟢

🟢

🟢

🟢

🟢

Converter Excel v1.1.2

cell-root

🟢

🟢

🟢

🟢

🟢

🟢

Converter Excel v1.1.8

cell-root

🟢

🟢

🟢

🟢

🟢

🟢

Converter Excel v1.1.11

cell-root

🟢

🟢

🟢

🟢

🟢

🟢

Converter Excel v1.1.15

cell-root

🟢

🟢

🟢

🟢

🟢

🟢

Converter Excel v1.1.17

cell-root

🟢

🟢

🟢

🟢

🟢

🟢

EMPA converter sample

cell-root

🟢

🟢

🟢

🟢

🟢

🟢

EMPA reference v3

cell-root

🟢

🟢

🟢

🟢

🟢

🟢

Discovery RO-Crate (.eln)

@graph[23]

🟢

🟢

🟢

🟢

🟢

🟢

What the columns mean#

  • Ingest — the file parses, tolerating the bare NaN some 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