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 |
|
π’ |
π’ |
π’ |
π’ |
π’ |
π’ |
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 |