Interop 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