Cells#
How to describe a cell: the design as a cell spec, each physical unit as a cell instance under it.
The spec is the design (the datasheet); the cell instance is one physical unit - the (spec, serial) pair makes re-registration a no-op.
A spec composes from parts by IRI: seven optional
*_spec_idreference fields (electrodes, electrolyte, separator, housing), checked at save.The as-built engineering layer (housing, tabs,
constructiongeometry) follows one pattern: identity fields plus apropertydict of quantities.An instance can name the physical parts inside it, e.g.
working_electrode_idpoints at the disc.
Define one#
A cell spec, from its datasheet#
from battinfo import CellSpec
spec = CellSpec(
# The published flagship IRI — dereference it (Accept:
# application/ld+json) to get this exact record.
id="https://w3id.org/battinfo/spec/pge5-wer6-2q82-v9k0",
manufacturer="A123",
model="ANR26650M1-B",
format="cylindrical",
chemistry="Li-ion",
positive_electrode_basis="LFP",
properties={
"nominal_capacity": {"value": 2.5, "unit": "Ah"},
"nominal_voltage": {"value": 3.3, "unit": "V"},
"mass": {"value": 76.0, "unit": "g"},
},
source={"type": "datasheet", "retrieved_at": 1750000000},
)
record = spec.to_record()
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/pge5-wer6-2q82-v9k0",
"short_id": "pge5we",
"identifier": "cell-spec:pge5-wer6-2q82-v9k0",
"name": "A123 ANR26650M1-B",
"model": "ANR26650M1-B",
"manufacturer": {
"type": "Organization",
"name": "A123"
},
"cell_format": "cylindrical",
"chemistry": "Li-ion",
"positive_electrode_basis": "LFP"
},
"properties": {
"nominal_capacity": {
"value": 2.5,
"unit": "Ah"
},
"nominal_voltage": {
"value": 3.3,
"unit": "V"
},
"mass": {
"value": 76.0,
"unit": "g"
}
},
"provenance": {
"source_type": "datasheet",
"retrieved_at": 1750000000,
"battinfo_version": "0.7.0"
}
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/pge5-wer6-2q82-v9k0",
"schema:identifier": "pge5-wer6-2q82-v9k0",
"schema:name": "A123 ANR26650M1-B",
"schema:model": "ANR26650M1-B",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "A123"
},
"schema:url": "https://www.battery-genome.org/registry/spec/pge5-wer6-2q82-v9k0",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"CylindricalBattery",
"LithiumIonBattery",
"LithiumIonIronPhosphateBattery"
],
"@id": "https://w3id.org/battinfo/spec/pge5-wer6-2q82-v9k0#described",
"skos:prefLabel": "A123 ANR26650M1-B",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 2.5
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 3.3
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
},
{
"@type": [
"Mass",
"ConventionalProperty"
],
"skos:prefLabel": "Mass",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 76.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#Gram"
}
],
"hasPositiveElectrode": {
"@type": "LithiumIronPhosphateElectrode"
}
},
"schema:schemaVersion": "0.2.0",
"schema:weight": {
"@type": "schema:QuantitativeValue",
"schema:value": 76.0,
"schema:unitText": "g"
},
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "datasheet",
"prov:generatedAtTime": "2025-06-15T15:06:40+00:00"
}
}
What to notice:
The spec node is the datasheet: name, manufacturer, codes. The cell it describes — with its capacity, voltage and electrodes — hangs off
isDescriptionFor, because a document doesn’t have a positive electrode.schema:manufacturerandschema:modelcarry the identity that seeded the IRI.
A cell instance under that spec#
from battinfo import Cell, CellSpec
spec = CellSpec(
id="https://w3id.org/battinfo/spec/7d9k-2m4p-8t3x-6nq5",
manufacturer="Samsung SDI",
model="INR21700-50E",
format="cylindrical",
chemistry="Li-ion",
)
cell = Cell(
id="https://w3id.org/battinfo/cell/y9xy-kr0v-y5tn-dfj7",
cell_spec=spec, # every cell links to its spec
serial_number="LAB-2026-0001",
batch_id="2026-W03",
manufactured_at="2026-01-15",
source={"type": "lab", "retrieved_at": 1750000000},
)
record = cell.to_record()
{
"schema_version": "0.2.0",
"cell_instance": {
"id": "https://w3id.org/battinfo/cell/y9xy-kr0v-y5tn-dfj7",
"short_id": "y9xykr",
"cell_spec_id": "https://w3id.org/battinfo/spec/7d9k-2m4p-8t3x-6nq5",
"name": "LAB-2026-0001",
"serial_number": "LAB-2026-0001",
"batch_id": "2026-W03",
"manufactured_at": "2026-01-15"
},
"provenance": {
"source_type": "lab",
"retrieved_at": 1750000000,
"battinfo_version": "0.7.0"
}
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCell",
"schema:IndividualProduct"
],
"@id": "https://w3id.org/battinfo/cell/y9xy-kr0v-y5tn-dfj7",
"schema:serialNumber": "LAB-2026-0001",
"hasDescription": {
"@id": "https://w3id.org/battinfo/spec/7d9k-2m4p-8t3x-6nq5"
},
"schema:isVariantOf": {
"@id": "https://w3id.org/battinfo/spec/7d9k-2m4p-8t3x-6nq5"
},
"schema:identifier": {
"@type": "schema:PropertyValue",
"schema:propertyID": "batch_id",
"schema:value": "2026-W03"
},
"schema:productionDate": "2026-01-15",
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "lab",
"prov:generatedAtTime": "2025-06-15T15:06:40+00:00"
}
}
What to notice:
cell_spec_idis the instantiation edge; the JSON-LD states it as a reference to the spec node.schema:serialNumbercarries the physical identity.
Common examples#
A selection of real, validated records from the packaged examples corpus — each one click away, included from its single source under examples/. The full, living library is the registry: browse it there.
A123 ANR26650M1-B (cell-spec)
The record ships in the installed wheel — load it as a starting point:
import json
from importlib import resources
record = json.loads(
resources.files("battinfo")
.joinpath("data/examples/cell-spec/A123__ANR26650M1-B.json")
.read_text(encoding="utf-8")
)
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/pge5-wer6-2q82-v9k0",
"short_id": "pge5we",
"identifier": "cell-spec:pge5-wer6-2q82-v9k0",
"name": "A123 ANR26650M1-B",
"model": "ANR26650M1-B",
"manufacturer": {
"type": "Organization",
"name": "A123",
"id": "https://w3id.org/battinfo/organization/8z6j-n7vw-e73w-smh7"
},
"brand": {
"type": "Brand",
"name": "A123"
},
"category": "battery cell",
"cell_format": "cylindrical",
"chemistry": "Li-ion",
"positive_electrode_basis": "LFP",
"negative_electrode_basis": "unknown",
"size_code": "R26650",
"iec_code": "IFpR26650",
"country_of_origin": "United States",
"year": 2012
},
"properties": {
"nominal_capacity": {
"value": 2.5,
"unit": "Ah",
"raw": {
"text": "Cell Capacity (nominal/minimum) (0.5C Rate) 2.5/2.4 Ah",
"page": 1,
"confidence": 0.8
}
},
"minimum_capacity": {
"value": 2.4,
"unit": "Ah",
"raw": {
"text": "Cell Capacity (nominal/minimum) (0.5C Rate) 2.5/2.4 Ah",
"page": 1,
"confidence": 0.8
}
},
"nominal_voltage": {
"value": 3.3,
"unit": "V",
"raw": {
"text": "Voltage (nominal) 3.3V",
"page": 1,
"confidence": 0.8
}
},
"internal_resistance": {
"value": 6.0,
"unit": "mΩ",
"raw": {
"text": "Internal Impedance (1kHz AC typical) 6mΩ",
"page": 1,
"confidence": 0.8
}
},
"mass": {
"value": 76.0,
"unit": "g",
"raw": {
"text": "Cell Weight 76g",
"page": 1,
"confidence": 0.8
}
},
"diameter": {
"value": 26.0,
"unit": "mm",
"raw": {
"text": "Cell Dimensions 26 x 65 mm",
"page": 1,
"confidence": 0.8
}
},
"height": {
"value": 65.0,
"unit": "mm",
"raw": {
"text": "Cell Dimensions 26 x 65 mm",
"page": 1,
"confidence": 0.8
}
},
"pulse_charging_current": {
"value": 10.0,
"unit": "A",
"raw": {
"text": "Recommended Fast Charge Method to 80% SOC 10A to 3.6V CC, 12 min",
"page": 1,
"confidence": 0.8
}
},
"maximum_continuous_charging_current": {
"value": 2.5,
"unit": "A",
"raw": {
"text": "Recommended Standard Charge Method 2.5A to 3.6V CCCV, 60 min",
"page": 1,
"confidence": 0.8
}
},
"maximum_continuous_discharging_current": {
"value": 50.0,
"unit": "A",
"raw": {
"text": "Maximum Continuous Discharge 50A",
"page": 1,
"confidence": 0.8
}
},
"minimum_discharging_temperature": {
"value": -30,
"unit": "°C",
"raw": {
"text": "Operating Temperature -30°C to 55°C",
"page": 1,
"confidence": 0.8
}
},
"maximum_discharging_temperature": {
"value": 55,
"unit": "°C",
"raw": {
"text": "Operating Temperature -30°C to 55°C",
"page": 1,
"confidence": 0.8
}
},
"minimum_storage_temperature": {
"value": -40,
"unit": "°C",
"raw": {
"text": "Storage Temperature -40°C to 60°C",
"page": 1,
"confidence": 0.8
}
},
"maximum_storage_temperature": {
"value": 60,
"unit": "°C",
"raw": {
"text": "Storage Temperature -40°C to 60°C",
"page": 1,
"confidence": 0.8
}
},
"cycle_life": {
"value_text": ">1000",
"unit": "count",
"raw": {
"text": "Cycle Life at 20A Discharge, 100% DOD >1,000 cycles",
"page": 1,
"confidence": 0.7
}
}
},
"provenance": {
"source_type": "datasheet",
"source_file": "A123__ANR26650M1-B.pdf",
"source_url": null,
"file_hash": "b5069f48e121de3a1308af66215e7a97a1c8c6a87227da089c83e352f1ddf35e",
"retrieved_at": 1769585584
}
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/pge5-wer6-2q82-v9k0",
"schema:identifier": "pge5-wer6-2q82-v9k0",
"schema:name": "A123 ANR26650M1-B",
"schema:model": "ANR26650M1-B",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "A123"
},
"schema:url": "https://www.battery-genome.org/registry/spec/pge5-wer6-2q82-v9k0",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"CylindricalBattery",
"LithiumIonBattery",
"LithiumIonIronPhosphateBattery"
],
"@id": "https://w3id.org/battinfo/spec/pge5-wer6-2q82-v9k0#described",
"skos:prefLabel": "A123 ANR26650M1-B",
"hasIECCode": "IFpR26650",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 2.5
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"MinimumCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "MinimumCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 2.4
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 3.3
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
},
{
"@type": [
"InternalResistance",
"ConventionalProperty"
],
"skos:prefLabel": "InternalResistance",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 6.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MilliOhm"
},
{
"@type": [
"Mass",
"ConventionalProperty"
],
"skos:prefLabel": "Mass",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 76.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#Gram"
},
{
"@type": [
"Diameter",
"ConventionalProperty"
],
"skos:prefLabel": "Diameter",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 26.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MilliMetre"
},
{
"@type": [
"Height",
"ConventionalProperty"
],
"skos:prefLabel": "Height",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 65.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MilliMetre"
},
{
"@type": [
"MaximumPulseChargingCurrent",
"ConventionalProperty"
],
"skos:prefLabel": "MaximumPulseChargingCurrent",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 10.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#Ampere"
},
{
"@type": [
"MaximumContinuousChargingCurrent",
"ConventionalProperty"
],
"skos:prefLabel": "MaximumContinuousChargingCurrent",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 2.5
},
"hasMeasurementUnit": "https://w3id.org/emmo#Ampere"
},
{
"@type": [
"MaximumContinuousDischargingCurrent",
"ConventionalProperty"
],
"skos:prefLabel": "MaximumContinuousDischargingCurrent",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 50.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#Ampere"
},
{
"@type": [
"MinimumDischargingTemperature",
"ConventionalProperty"
],
"skos:prefLabel": "MinimumDischargingTemperature",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": -30
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_36a9bf69_483b_42fd_8a0c_7ac9206320bc"
},
{
"@type": [
"MaximumDischargingTemperature",
"ConventionalProperty"
],
"skos:prefLabel": "MaximumDischargingTemperature",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 55
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_36a9bf69_483b_42fd_8a0c_7ac9206320bc"
},
{
"@type": [
"MinimumStorageTemperature",
"ConventionalProperty"
],
"skos:prefLabel": "MinimumStorageTemperature",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": -40
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_36a9bf69_483b_42fd_8a0c_7ac9206320bc"
},
{
"@type": [
"MaximumStorageTemperature",
"ConventionalProperty"
],
"skos:prefLabel": "MaximumStorageTemperature",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 60
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_36a9bf69_483b_42fd_8a0c_7ac9206320bc"
},
{
"@type": [
"CycleLife",
"ConventionalProperty"
],
"skos:prefLabel": "CycleLife",
"hasStringValue": ">1000",
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
],
"hasPositiveElectrode": {
"@type": "LithiumIronPhosphateElectrode"
}
},
"schema:size": "R26650",
"schema:productID": "IFpR26650",
"schema:brand": {
"@type": "schema:Brand",
"schema:name": "A123"
},
"schema:category": "battery cell",
"schema:countryOfOrigin": {
"@type": "schema:Country",
"schema:name": "United States"
},
"schema:releaseDate": "2012-01-01",
"schema:schemaVersion": "0.2.0",
"schema:weight": {
"@type": "schema:QuantitativeValue",
"schema:value": 76.0,
"schema:unitText": "g"
},
"schema:height": {
"@type": "schema:QuantitativeValue",
"schema:value": 65.0,
"schema:unitText": "mm"
},
"schema:width": {
"@type": "schema:QuantitativeValue",
"schema:value": 26.0,
"schema:unitText": "mm"
},
"schema:depth": {
"@type": "schema:QuantitativeValue",
"schema:value": 26.0,
"schema:unitText": "mm"
},
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "datasheet",
"prov:generatedAtTime": "2026-01-28T07:33:04+00:00"
}
}
ExampleLab CYL-LFP-18650 (cell-spec)
The record ships in the installed wheel — load it as a starting point:
import json
from importlib import resources
record = json.loads(
resources.files("battinfo")
.joinpath("data/examples/cell-spec/research/cylindrical-detailed.example.json")
.read_text(encoding="utf-8")
)
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/2d5n-8r4k-3p7t-6v9m",
"name": "ExampleLab CYL-LFP-18650",
"manufacturer": {
"type": "Organization",
"name": "ExampleLab"
},
"model": "CYL-LFP-18650",
"cell_format": "cylindrical",
"chemistry": "Li-ion",
"positive_electrode_basis": "LFP",
"negative_electrode_basis": "graphite",
"size_code": "18650"
},
"properties": {
"nominal_capacity": {
"value": 1.5,
"unit": "Ah"
},
"nominal_voltage": {
"value": 3.2,
"unit": "V"
}
},
"construction": {
"assembly_type": "wound",
"layering": "multilayer",
"layer_count": 32,
"comment": "Jelly-roll cylindrical example fixture."
},
"positive_electrode": {
"coating": {
"component": {
"active_material": [
{
"name": "LFP",
"property": {
"mass_fraction": {
"value": 0.94,
"unit": "1"
}
}
}
],
"binder": [
{
"name": "PVDF",
"property": {
"mass_fraction": {
"value": 0.03,
"unit": "1"
}
}
}
],
"additive": [
{
"name": "Carbon black",
"property": {
"mass_fraction": {
"value": 0.03,
"unit": "1"
}
}
}
]
},
"property": {
"loading": {
"value": 17.5,
"unit": "mg/cm^2"
},
"thickness": {
"value": 64.0,
"unit": "um"
}
}
},
"current_collector": {
"name": "Al foil",
"property": {
"thickness": {
"value": 15.0,
"unit": "um"
}
}
}
},
"negative_electrode": {
"coating": {
"component": {
"active_material": [
{
"name": "Graphite",
"property": {
"mass_fraction": {
"value": 0.95,
"unit": "1"
}
}
}
],
"binder": [
{
"name": "CMC/SBR",
"property": {
"mass_fraction": {
"value": 0.05,
"unit": "1"
}
}
}
]
},
"property": {
"thickness": {
"value": 72.0,
"unit": "um"
}
}
},
"current_collector": {
"name": "Cu foil",
"property": {
"thickness": {
"value": 10.0,
"unit": "um"
}
}
}
},
"electrolyte": {
"family": "organic",
"solvent_mixture": {
"component": [
{
"name": "EC",
"property": {
"volume_fraction": {
"value": 0.3,
"unit": "1"
}
}
},
{
"name": "EMC",
"property": {
"volume_fraction": {
"value": 0.7,
"unit": "1"
}
}
}
]
},
"salt": {
"name": "LiPF6",
"property": {
"concentration": {
"value": 1.0,
"unit": "mol/L"
}
}
},
"additive": [
{
"name": "VC",
"property": {
"volume_fraction": {
"value": 0.02,
"unit": "1"
}
}
}
]
},
"separator": {
"material": "PE/PP trilayer",
"property": {
"thickness": {
"value": 18.0,
"unit": "um"
}
}
},
"provenance": {
"source_type": "manual",
"source_name": "BattINFO example fixtures",
"source_file": "examples/cell-descriptors/cylindrical-detailed.example.json",
"retrieved_at": 1773201600,
"workflow_version": "example-fixtures-0.1",
"comment": "Canonical detailed cylindrical fixture."
},
"notes": [
"Detailed cylindrical descriptor for validation coverage.",
"Example fixture for detailed cylindrical-cell descriptions."
]
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/2d5n-8r4k-3p7t-6v9m",
"schema:identifier": "2d5n-8r4k-3p7t-6v9m",
"schema:name": "ExampleLab CYL-LFP-18650",
"schema:model": "CYL-LFP-18650",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "ExampleLab"
},
"schema:url": "https://www.battery-genome.org/registry/spec/2d5n-8r4k-3p7t-6v9m",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"CylindricalBattery",
"LithiumIonBattery",
"LithiumIonIronPhosphateBattery",
"LithiumIonGraphiteBattery"
],
"@id": "https://w3id.org/battinfo/spec/2d5n-8r4k-3p7t-6v9m#described",
"skos:prefLabel": "ExampleLab CYL-LFP-18650",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 1.5
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 3.2
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
}
],
"hasPositiveElectrode": {
"hasCoating": {
"@type": "ElectrodeCoating",
"hasActiveMaterial": {
"@type": [
"LithiumIronPhosphate",
"ActiveMaterial"
],
"schema:name": "LFP",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.94
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasBinder": {
"@type": [
"PolyvinylideneFluoride",
"Binder"
],
"schema:name": "PVDF",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.03
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasConductiveAdditive": {
"@type": [
"CarbonBlack",
"ConductiveAdditive"
],
"schema:name": "Carbon black",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.03
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasProperty": [
{
"@type": [
"ActiveMassLoading",
"ConventionalProperty"
],
"skos:prefLabel": "ActiveMassLoading",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 17.5
},
"hasMeasurementUnit": "https://w3id.org/emmo#MilliGramPerSquareCentiMetre"
},
{
"@type": [
"CalenderedCoatingThickness",
"ConventionalProperty"
],
"skos:prefLabel": "CalenderedCoatingThickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 64.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
]
},
"hasCurrentCollector": {
"@type": [
"CurrentCollector",
"Foil"
],
"schema:name": "Al foil",
"hasProperty": {
"@type": [
"Thickness",
"ConventionalProperty"
],
"skos:prefLabel": "Thickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 15.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"@type": "LithiumIronPhosphateElectrode"
},
"hasNegativeElectrode": {
"hasCoating": {
"@type": "ElectrodeCoating",
"hasActiveMaterial": {
"@type": [
"Graphite",
"ActiveMaterial"
],
"schema:name": "Graphite",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.95
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasBinder": {
"@type": "Binder",
"schema:name": "CMC/SBR",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.05
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasProperty": {
"@type": [
"CalenderedCoatingThickness",
"ConventionalProperty"
],
"skos:prefLabel": "CalenderedCoatingThickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 72.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"hasCurrentCollector": {
"@type": [
"CurrentCollector",
"Foil"
],
"schema:name": "Cu foil",
"hasProperty": {
"@type": [
"Thickness",
"ConventionalProperty"
],
"skos:prefLabel": "Thickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 10.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"@type": "GraphiteElectrode"
},
"hasElectrolyte": {
"@type": "OrganicElectrolyte",
"hasSolute": {
"@type": [
"LithiumHexafluorophosphate",
"Solute"
],
"schema:name": "LiPF6",
"hasProperty": {
"@type": [
"AmountConcentration",
"ConventionalProperty"
],
"skos:prefLabel": "AmountConcentration",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 1.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MolePerLitre"
}
},
"hasSolvent": [
{
"@type": [
"EthyleneCarbonate",
"Solvent"
],
"schema:name": "EC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.3
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
{
"@type": [
"EthylMethylCarbonate",
"Solvent"
],
"schema:name": "EMC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.7
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
}
],
"hasAdditive": {
"@type": [
"VinyleneCarbonate",
"ElectrolyteAdditive"
],
"schema:name": "VC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.02
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
}
},
"hasSeparator": {
"@type": "Separator",
"schema:name": "PE/PP trilayer",
"hasProperty": {
"@type": [
"Thickness",
"ConventionalProperty"
],
"skos:prefLabel": "Thickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 18.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"schema:additionalProperty": [
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.assembly_type",
"schema:name": "Assembly Type",
"schema:value": "wound"
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.layering",
"schema:name": "Layering",
"schema:value": "multilayer"
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.layer_count",
"schema:name": "Layer Count",
"schema:value": 32
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.comment",
"schema:name": "Construction Comment",
"schema:value": "Jelly-roll cylindrical example fixture."
}
]
},
"schema:size": "18650",
"schema:schemaVersion": "0.2.0",
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "manual",
"prov:generatedAtTime": "2026-03-11T04:00:00+00:00"
}
}
ExampleLab PRISM-LFP-020 (cell-spec)
The record ships in the installed wheel — load it as a starting point:
import json
from importlib import resources
record = json.loads(
resources.files("battinfo")
.joinpath("data/examples/cell-spec/research/prismatic-detailed.example.json")
.read_text(encoding="utf-8")
)
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/5j9r-4k7p-2m8t-6v3q",
"name": "ExampleLab PRISM-LFP-020",
"manufacturer": {
"type": "Organization",
"name": "ExampleLab"
},
"model": "PRISM-LFP-020",
"cell_format": "prismatic",
"chemistry": "Li-ion",
"positive_electrode_basis": "LFP",
"negative_electrode_basis": "graphite"
},
"properties": {
"nominal_capacity": {
"value": 20.0,
"unit": "Ah"
},
"nominal_voltage": {
"value": 3.2,
"unit": "V"
}
},
"construction": {
"assembly_type": "stacked",
"layering": "multilayer",
"layer_count": 24,
"comment": "Stacked prismatic example fixture."
},
"positive_electrode": {
"coating": {
"component": {
"active_material": [
{
"name": "LFP",
"property": {
"mass_fraction": {
"value": 0.94,
"unit": "1"
}
}
}
],
"binder": [
{
"name": "PVDF",
"property": {
"mass_fraction": {
"value": 0.03,
"unit": "1"
}
}
}
],
"additive": [
{
"name": "Carbon black",
"property": {
"mass_fraction": {
"value": 0.03,
"unit": "1"
}
}
}
]
},
"property": {
"loading": {
"value": 24.0,
"unit": "mg/cm^2"
}
}
},
"current_collector": {
"name": "Al foil"
}
},
"negative_electrode": {
"coating": {
"component": {
"active_material": [
{
"name": "Graphite",
"property": {
"mass_fraction": {
"value": 0.95,
"unit": "1"
}
}
}
],
"binder": [
{
"name": "CMC/SBR",
"property": {
"mass_fraction": {
"value": 0.05,
"unit": "1"
}
}
}
]
},
"property": {
"loading": {
"value": 13.0,
"unit": "mg/cm^2"
}
}
},
"current_collector": {
"name": "Cu foil"
}
},
"electrolyte": {
"family": "organic",
"solvent_mixture": {
"component": [
{
"name": "EC",
"property": {
"volume_fraction": {
"value": 0.25,
"unit": "1"
}
}
},
{
"name": "EMC",
"property": {
"volume_fraction": {
"value": 0.75,
"unit": "1"
}
}
}
]
},
"salt": {
"name": "LiPF6",
"property": {
"concentration": {
"value": 1.0,
"unit": "mol/L"
}
}
},
"additive": [
{
"name": "FEC",
"property": {
"volume_fraction": {
"value": 0.03,
"unit": "1"
}
}
}
]
},
"separator": {
"material": "Ceramic-coated PP",
"property": {
"thickness": {
"value": 18.0,
"unit": "um"
}
}
},
"provenance": {
"source_type": "manual",
"source_name": "BattINFO example fixtures",
"source_file": "examples/cell-descriptors/prismatic-detailed.example.json",
"retrieved_at": 1773201600,
"workflow_version": "example-fixtures-0.1",
"comment": "Canonical detailed prismatic fixture."
},
"notes": [
"Detailed prismatic descriptor for validation coverage.",
"Example fixture for detailed prismatic-cell descriptions."
]
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/5j9r-4k7p-2m8t-6v3q",
"schema:identifier": "5j9r-4k7p-2m8t-6v3q",
"schema:name": "ExampleLab PRISM-LFP-020",
"schema:model": "PRISM-LFP-020",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "ExampleLab"
},
"schema:url": "https://www.battery-genome.org/registry/spec/5j9r-4k7p-2m8t-6v3q",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"PrismaticBattery",
"LithiumIonBattery",
"LithiumIonIronPhosphateBattery",
"LithiumIonGraphiteBattery"
],
"@id": "https://w3id.org/battinfo/spec/5j9r-4k7p-2m8t-6v3q#described",
"skos:prefLabel": "ExampleLab PRISM-LFP-020",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 20.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 3.2
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
}
],
"hasPositiveElectrode": {
"hasCoating": {
"@type": "ElectrodeCoating",
"hasActiveMaterial": {
"@type": [
"LithiumIronPhosphate",
"ActiveMaterial"
],
"schema:name": "LFP",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.94
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasBinder": {
"@type": [
"PolyvinylideneFluoride",
"Binder"
],
"schema:name": "PVDF",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.03
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasConductiveAdditive": {
"@type": [
"CarbonBlack",
"ConductiveAdditive"
],
"schema:name": "Carbon black",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.03
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasProperty": {
"@type": [
"ActiveMassLoading",
"ConventionalProperty"
],
"skos:prefLabel": "ActiveMassLoading",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 24.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MilliGramPerSquareCentiMetre"
}
},
"hasCurrentCollector": {
"@type": [
"CurrentCollector",
"Foil"
],
"schema:name": "Al foil"
},
"@type": "LithiumIronPhosphateElectrode"
},
"hasNegativeElectrode": {
"hasCoating": {
"@type": "ElectrodeCoating",
"hasActiveMaterial": {
"@type": [
"Graphite",
"ActiveMaterial"
],
"schema:name": "Graphite",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.95
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasBinder": {
"@type": "Binder",
"schema:name": "CMC/SBR",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.05
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasProperty": {
"@type": [
"ActiveMassLoading",
"ConventionalProperty"
],
"skos:prefLabel": "ActiveMassLoading",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 13.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MilliGramPerSquareCentiMetre"
}
},
"hasCurrentCollector": {
"@type": [
"CurrentCollector",
"Foil"
],
"schema:name": "Cu foil"
},
"@type": "GraphiteElectrode"
},
"hasElectrolyte": {
"@type": "OrganicElectrolyte",
"hasSolute": {
"@type": [
"LithiumHexafluorophosphate",
"Solute"
],
"schema:name": "LiPF6",
"hasProperty": {
"@type": [
"AmountConcentration",
"ConventionalProperty"
],
"skos:prefLabel": "AmountConcentration",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 1.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MolePerLitre"
}
},
"hasSolvent": [
{
"@type": [
"EthyleneCarbonate",
"Solvent"
],
"schema:name": "EC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.25
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
{
"@type": [
"EthylMethylCarbonate",
"Solvent"
],
"schema:name": "EMC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.75
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
}
],
"hasAdditive": {
"@type": [
"FluoroethyleneCarbonate",
"ElectrolyteAdditive"
],
"schema:name": "FEC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.03
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
}
},
"hasSeparator": {
"@type": "Separator",
"schema:name": "Ceramic-coated PP",
"hasProperty": {
"@type": [
"Thickness",
"ConventionalProperty"
],
"skos:prefLabel": "Thickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 18.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"schema:additionalProperty": [
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.assembly_type",
"schema:name": "Assembly Type",
"schema:value": "stacked"
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.layering",
"schema:name": "Layering",
"schema:value": "multilayer"
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.layer_count",
"schema:name": "Layer Count",
"schema:value": 24
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.comment",
"schema:name": "Construction Comment",
"schema:value": "Stacked prismatic example fixture."
}
]
},
"schema:schemaVersion": "0.2.0",
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "manual",
"prov:generatedAtTime": "2026-03-11T04:00:00+00:00"
}
}
ExampleLab POUCH-ML-LFP-018 (cell-spec)
The record ships in the installed wheel — load it as a starting point:
import json
from importlib import resources
record = json.loads(
resources.files("battinfo")
.joinpath("data/examples/cell-spec/research/pouch-multilayer-detailed.example.json")
.read_text(encoding="utf-8")
)
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/4h8p-3t6m-9q2k-7v5r",
"name": "ExampleLab POUCH-ML-LFP-018",
"manufacturer": {
"type": "Organization",
"name": "ExampleLab"
},
"model": "POUCH-ML-LFP-018",
"cell_format": "pouch",
"chemistry": "Li-ion",
"positive_electrode_basis": "LFP",
"negative_electrode_basis": "graphite"
},
"properties": {
"nominal_capacity": {
"value": 5.0,
"unit": "Ah"
},
"nominal_voltage": {
"value": 3.2,
"unit": "V"
}
},
"construction": {
"assembly_type": "stacked",
"layering": "multilayer",
"layer_count": 18,
"comment": "Multilayer pouch example fixture."
},
"positive_electrode": {
"coating": {
"component": {
"active_material": [
{
"name": "LFP",
"property": {
"mass_fraction": {
"value": 0.94,
"unit": "1"
}
}
}
],
"binder": [
{
"name": "PVDF",
"property": {
"mass_fraction": {
"value": 0.03,
"unit": "1"
}
}
}
],
"additive": [
{
"name": "Carbon black",
"property": {
"mass_fraction": {
"value": 0.03,
"unit": "1"
}
}
}
]
},
"property": {
"loading": {
"value": 21.0,
"unit": "mg/cm^2"
}
}
},
"current_collector": {
"name": "Al foil"
}
},
"negative_electrode": {
"coating": {
"component": {
"active_material": [
{
"name": "Graphite",
"property": {
"mass_fraction": {
"value": 0.95,
"unit": "1"
}
}
}
],
"binder": [
{
"name": "CMC/SBR",
"property": {
"mass_fraction": {
"value": 0.05,
"unit": "1"
}
}
}
]
},
"property": {
"loading": {
"value": 12.0,
"unit": "mg/cm^2"
}
}
},
"current_collector": {
"name": "Cu foil"
}
},
"electrolyte": {
"family": "organic",
"solvent_mixture": {
"component": [
{
"name": "EC",
"property": {
"volume_fraction": {
"value": 0.3,
"unit": "1"
}
}
},
{
"name": "EMC",
"property": {
"volume_fraction": {
"value": 0.7,
"unit": "1"
}
}
}
]
},
"salt": {
"name": "LiPF6",
"property": {
"concentration": {
"value": 1.1,
"unit": "mol/L"
}
}
},
"additive": [
{
"name": "VC",
"property": {
"volume_fraction": {
"value": 0.02,
"unit": "1"
}
}
}
]
},
"separator": {
"material": "Ceramic-coated PE",
"property": {
"thickness": {
"value": 20.0,
"unit": "um"
}
}
},
"provenance": {
"source_type": "manual",
"source_name": "BattINFO example fixtures",
"source_file": "examples/cell-descriptors/pouch-multilayer-detailed.example.json",
"retrieved_at": 1773201600,
"workflow_version": "example-fixtures-0.1",
"comment": "Canonical detailed multilayer pouch fixture."
},
"notes": [
"Detailed multilayer pouch descriptor for validation coverage.",
"Example fixture for detailed multilayer pouch-cell descriptions."
]
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/4h8p-3t6m-9q2k-7v5r",
"schema:identifier": "4h8p-3t6m-9q2k-7v5r",
"schema:name": "ExampleLab POUCH-ML-LFP-018",
"schema:model": "POUCH-ML-LFP-018",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "ExampleLab"
},
"schema:url": "https://www.battery-genome.org/registry/spec/4h8p-3t6m-9q2k-7v5r",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"PouchCell",
"LithiumIonBattery",
"LithiumIonIronPhosphateBattery",
"LithiumIonGraphiteBattery"
],
"@id": "https://w3id.org/battinfo/spec/4h8p-3t6m-9q2k-7v5r#described",
"skos:prefLabel": "ExampleLab POUCH-ML-LFP-018",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 5.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 3.2
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
}
],
"hasPositiveElectrode": {
"hasCoating": {
"@type": "ElectrodeCoating",
"hasActiveMaterial": {
"@type": [
"LithiumIronPhosphate",
"ActiveMaterial"
],
"schema:name": "LFP",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.94
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasBinder": {
"@type": [
"PolyvinylideneFluoride",
"Binder"
],
"schema:name": "PVDF",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.03
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasConductiveAdditive": {
"@type": [
"CarbonBlack",
"ConductiveAdditive"
],
"schema:name": "Carbon black",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.03
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasProperty": {
"@type": [
"ActiveMassLoading",
"ConventionalProperty"
],
"skos:prefLabel": "ActiveMassLoading",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 21.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MilliGramPerSquareCentiMetre"
}
},
"hasCurrentCollector": {
"@type": [
"CurrentCollector",
"Foil"
],
"schema:name": "Al foil"
},
"@type": "LithiumIronPhosphateElectrode"
},
"hasNegativeElectrode": {
"hasCoating": {
"@type": "ElectrodeCoating",
"hasActiveMaterial": {
"@type": [
"Graphite",
"ActiveMaterial"
],
"schema:name": "Graphite",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.95
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasBinder": {
"@type": "Binder",
"schema:name": "CMC/SBR",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.05
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasProperty": {
"@type": [
"ActiveMassLoading",
"ConventionalProperty"
],
"skos:prefLabel": "ActiveMassLoading",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 12.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MilliGramPerSquareCentiMetre"
}
},
"hasCurrentCollector": {
"@type": [
"CurrentCollector",
"Foil"
],
"schema:name": "Cu foil"
},
"@type": "GraphiteElectrode"
},
"hasElectrolyte": {
"@type": "OrganicElectrolyte",
"hasSolute": {
"@type": [
"LithiumHexafluorophosphate",
"Solute"
],
"schema:name": "LiPF6",
"hasProperty": {
"@type": [
"AmountConcentration",
"ConventionalProperty"
],
"skos:prefLabel": "AmountConcentration",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 1.1
},
"hasMeasurementUnit": "https://w3id.org/emmo#MolePerLitre"
}
},
"hasSolvent": [
{
"@type": [
"EthyleneCarbonate",
"Solvent"
],
"schema:name": "EC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.3
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
{
"@type": [
"EthylMethylCarbonate",
"Solvent"
],
"schema:name": "EMC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.7
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
}
],
"hasAdditive": {
"@type": [
"VinyleneCarbonate",
"ElectrolyteAdditive"
],
"schema:name": "VC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.02
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
}
},
"hasSeparator": {
"@type": "Separator",
"schema:name": "Ceramic-coated PE",
"hasProperty": {
"@type": [
"Thickness",
"ConventionalProperty"
],
"skos:prefLabel": "Thickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 20.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"schema:additionalProperty": [
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.assembly_type",
"schema:name": "Assembly Type",
"schema:value": "stacked"
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.layering",
"schema:name": "Layering",
"schema:value": "multilayer"
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.layer_count",
"schema:name": "Layer Count",
"schema:value": 18
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.comment",
"schema:name": "Construction Comment",
"schema:value": "Multilayer pouch example fixture."
}
]
},
"schema:schemaVersion": "0.2.0",
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "manual",
"prov:generatedAtTime": "2026-03-11T04:00:00+00:00"
}
}
ExampleLab COIN-LFP-2032 (cell-spec)
The record ships in the installed wheel — load it as a starting point:
import json
from importlib import resources
record = json.loads(
resources.files("battinfo")
.joinpath("data/examples/cell-spec/research/coin-detailed.example.json")
.read_text(encoding="utf-8")
)
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/1c4m-7p9q-2k6t-8v3r",
"name": "ExampleLab COIN-LFP-2032",
"manufacturer": {
"type": "Organization",
"name": "ExampleLab"
},
"model": "COIN-LFP-2032",
"cell_format": "coin",
"chemistry": "Li-ion",
"positive_electrode_basis": "LFP",
"negative_electrode_basis": "graphite",
"size_code": "2032"
},
"properties": {
"nominal_capacity": {
"value": 0.04,
"unit": "Ah"
},
"nominal_voltage": {
"value": 3.2,
"unit": "V"
}
},
"construction": {
"assembly_type": "stacked",
"layering": "not_applicable",
"comment": "Coin-cell example fixture with stacked pellet-style components."
},
"positive_electrode": {
"coating": {
"component": {
"active_material": [
{
"name": "LFP",
"property": {
"mass_fraction": {
"value": 0.92,
"unit": "1"
}
}
}
],
"binder": [
{
"name": "PVDF",
"property": {
"mass_fraction": {
"value": 0.04,
"unit": "1"
}
}
}
],
"additive": [
{
"name": "Carbon black",
"property": {
"mass_fraction": {
"value": 0.04,
"unit": "1"
}
}
}
]
},
"property": {
"thickness": {
"value": 55.0,
"unit": "um"
}
}
},
"current_collector": {
"name": "Al foil"
}
},
"negative_electrode": {
"coating": {
"component": {
"active_material": [
{
"name": "Graphite",
"property": {
"mass_fraction": {
"value": 0.95,
"unit": "1"
}
}
}
],
"binder": [
{
"name": "CMC/SBR",
"property": {
"mass_fraction": {
"value": 0.05,
"unit": "1"
}
}
}
]
},
"property": {
"thickness": {
"value": 48.0,
"unit": "um"
}
}
},
"current_collector": {
"name": "Cu foil"
}
},
"electrolyte": {
"family": "organic",
"solvent_mixture": {
"component": [
{
"name": "EC",
"property": {
"volume_fraction": {
"value": 0.5,
"unit": "1"
}
}
},
{
"name": "DEC",
"property": {
"volume_fraction": {
"value": 0.5,
"unit": "1"
}
}
}
]
},
"salt": {
"name": "LiPF6",
"property": {
"concentration": {
"value": 1.0,
"unit": "mol/L"
}
}
}
},
"separator": {
"material": "PP membrane",
"property": {
"thickness": {
"value": 20.0,
"unit": "um"
}
}
},
"provenance": {
"source_type": "manual",
"source_name": "BattINFO example fixtures",
"source_file": "examples/cell-descriptors/coin-detailed.example.json",
"retrieved_at": 1773201600,
"workflow_version": "example-fixtures-0.1",
"comment": "Canonical detailed coin-cell fixture."
},
"notes": [
"Detailed coin-cell descriptor for validation coverage.",
"Example fixture for detailed coin-cell descriptions."
]
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/1c4m-7p9q-2k6t-8v3r",
"schema:identifier": "1c4m-7p9q-2k6t-8v3r",
"schema:name": "ExampleLab COIN-LFP-2032",
"schema:model": "COIN-LFP-2032",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "ExampleLab"
},
"schema:url": "https://www.battery-genome.org/registry/spec/1c4m-7p9q-2k6t-8v3r",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"CoinCell",
"LithiumIonBattery",
"LithiumIonIronPhosphateBattery",
"LithiumIonGraphiteBattery"
],
"@id": "https://w3id.org/battinfo/spec/1c4m-7p9q-2k6t-8v3r#described",
"skos:prefLabel": "ExampleLab COIN-LFP-2032",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.04
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 3.2
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
}
],
"hasPositiveElectrode": {
"hasCoating": {
"@type": "ElectrodeCoating",
"hasActiveMaterial": {
"@type": [
"LithiumIronPhosphate",
"ActiveMaterial"
],
"schema:name": "LFP",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.92
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasBinder": {
"@type": [
"PolyvinylideneFluoride",
"Binder"
],
"schema:name": "PVDF",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.04
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasConductiveAdditive": {
"@type": [
"CarbonBlack",
"ConductiveAdditive"
],
"schema:name": "Carbon black",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.04
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasProperty": {
"@type": [
"CalenderedCoatingThickness",
"ConventionalProperty"
],
"skos:prefLabel": "CalenderedCoatingThickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 55.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"hasCurrentCollector": {
"@type": [
"CurrentCollector",
"Foil"
],
"schema:name": "Al foil"
},
"@type": "LithiumIronPhosphateElectrode"
},
"hasNegativeElectrode": {
"hasCoating": {
"@type": "ElectrodeCoating",
"hasActiveMaterial": {
"@type": [
"Graphite",
"ActiveMaterial"
],
"schema:name": "Graphite",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.95
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasBinder": {
"@type": "Binder",
"schema:name": "CMC/SBR",
"hasProperty": {
"@type": [
"MassFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.05
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
"hasProperty": {
"@type": [
"CalenderedCoatingThickness",
"ConventionalProperty"
],
"skos:prefLabel": "CalenderedCoatingThickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 48.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"hasCurrentCollector": {
"@type": [
"CurrentCollector",
"Foil"
],
"schema:name": "Cu foil"
},
"@type": "GraphiteElectrode"
},
"hasElectrolyte": {
"@type": "OrganicElectrolyte",
"hasSolute": {
"@type": [
"LithiumHexafluorophosphate",
"Solute"
],
"schema:name": "LiPF6",
"hasProperty": {
"@type": [
"AmountConcentration",
"ConventionalProperty"
],
"skos:prefLabel": "AmountConcentration",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 1.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MolePerLitre"
}
},
"hasSolvent": [
{
"@type": [
"EthyleneCarbonate",
"Solvent"
],
"schema:name": "EC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.5
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
},
{
"@type": "Solvent",
"schema:name": "DEC",
"hasProperty": {
"@type": [
"VolumeFraction",
"ConventionalProperty"
],
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.5
},
"hasMeasurementUnit": "https://w3id.org/emmo#EMMO_5ebd5e01_0ed3_49a2_a30d_cd05cbe72978"
}
}
]
},
"hasSeparator": {
"@type": "Separator",
"schema:name": "PP membrane",
"hasProperty": {
"@type": [
"Thickness",
"ConventionalProperty"
],
"skos:prefLabel": "Thickness",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 20.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#MicroMetre"
}
},
"schema:additionalProperty": [
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.assembly_type",
"schema:name": "Assembly Type",
"schema:value": "stacked"
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.layering",
"schema:name": "Layering",
"schema:value": "not_applicable"
},
{
"@type": "schema:PropertyValue",
"schema:propertyID": "construction.comment",
"schema:name": "Construction Comment",
"schema:value": "Coin-cell example fixture with stacked pellet-style components."
}
]
},
"schema:size": "2032",
"schema:schemaVersion": "0.2.0",
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "manual",
"prov:generatedAtTime": "2026-03-11T04:00:00+00:00"
}
}
EMPA COIN-NMC811-D (cell-spec)
The record ships in the installed wheel — load it as a starting point:
import json
from importlib import resources
record = json.loads(
resources.files("battinfo")
.joinpath("data/examples/cell-spec/cell-spec-tme2-0sy6-q89b-8m92.json")
.read_text(encoding="utf-8")
)
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/tme2-0sy6-q89b-8m92",
"short_id": "tme20s",
"identifier": "cell-spec:tme2-0sy6-q89b-8m92",
"name": "EMPA COIN-NMC811-D",
"model": "COIN-NMC811-D",
"manufacturer": {
"type": "Organization",
"name": "EMPA",
"id": "https://w3id.org/battinfo/organization/mtf8-84d1-addg-nnvv"
},
"cell_format": "coin",
"chemistry": "Li-ion",
"positive_electrode_basis": "NMC811",
"negative_electrode_basis": "graphite"
},
"properties": {
"nominal_capacity": {
"value": 0.0038,
"unit": "Ah"
},
"nominal_voltage": {
"value": 3.8,
"unit": "V"
}
},
"provenance": {
"source_type": "datasheet",
"source_file": "manual.json",
"source_url": null,
"retrieved_at": 1781772766
},
"positive_electrode_spec_id": "https://w3id.org/battinfo/spec/qfjh-7xyr-ga1k-tjez",
"negative_electrode_spec_id": "https://w3id.org/battinfo/spec/d7qr-n581-74c3-7g7r",
"electrolyte_spec_id": "https://w3id.org/battinfo/spec/gpkh-74nj-6sdb-vcsc",
"separator_spec_id": "https://w3id.org/battinfo/spec/wgym-4xfa-pws1-ek1b",
"housing_spec_id": "https://w3id.org/battinfo/spec/38af-bpnv-1zmm-32hs",
"notes": [
"Discovery NMC811-Graphite coin cell."
]
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/tme2-0sy6-q89b-8m92",
"schema:identifier": "tme2-0sy6-q89b-8m92",
"schema:name": "EMPA COIN-NMC811-D",
"schema:model": "COIN-NMC811-D",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "EMPA"
},
"schema:url": "https://www.battery-genome.org/registry/spec/tme2-0sy6-q89b-8m92",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"CoinCell",
"LithiumIonBattery",
"LithiumIonNickelManganeseCobaltOxideBattery",
"LithiumIonGraphiteBattery"
],
"@id": "https://w3id.org/battinfo/spec/tme2-0sy6-q89b-8m92#described",
"skos:prefLabel": "EMPA COIN-NMC811-D",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.0038
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 3.8
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
}
],
"hasPositiveElectrode": {
"@type": "LithiumNickelManganeseCobaltOxideElectrode",
"@id": "https://w3id.org/battinfo/spec/qfjh-7xyr-ga1k-tjez#described"
},
"hasNegativeElectrode": {
"@type": "GraphiteElectrode",
"@id": "https://w3id.org/battinfo/spec/d7qr-n581-74c3-7g7r#described"
},
"hasElectrolyte": {
"@id": "https://w3id.org/battinfo/spec/gpkh-74nj-6sdb-vcsc#described"
},
"hasSeparator": {
"@id": "https://w3id.org/battinfo/spec/wgym-4xfa-pws1-ek1b#described"
},
"hasConstituent": {
"@id": "https://w3id.org/battinfo/spec/38af-bpnv-1zmm-32hs#described"
}
},
"schema:schemaVersion": "0.2.0",
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "datasheet",
"prov:generatedAtTime": "2026-06-18T08:52:46+00:00"
}
}
EMPA PRISM-LFP-100AH (cell-spec)
The record ships in the installed wheel — load it as a starting point:
import json
from importlib import resources
record = json.loads(
resources.files("battinfo")
.joinpath("data/examples/cell-spec/cell-spec-86k6-6tzd-c4sf-5s01.json")
.read_text(encoding="utf-8")
)
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/86k6-6tzd-c4sf-5s01",
"short_id": "86k66t",
"identifier": "cell-spec:86k6-6tzd-c4sf-5s01",
"name": "EMPA PRISM-LFP-100AH",
"model": "PRISM-LFP-100AH",
"manufacturer": {
"type": "Organization",
"name": "EMPA",
"id": "https://w3id.org/battinfo/organization/mtf8-84d1-addg-nnvv"
},
"cell_format": "prismatic",
"chemistry": "Li-ion",
"positive_electrode_basis": "LFP",
"negative_electrode_basis": "graphite"
},
"properties": {
"nominal_capacity": {
"value": 100.0,
"unit": "Ah"
},
"nominal_voltage": {
"value": 3.2,
"unit": "V"
}
},
"provenance": {
"source_type": "datasheet",
"source_file": "manual.json",
"source_url": null,
"retrieved_at": 1781772767
},
"positive_electrode_spec_id": "https://w3id.org/battinfo/spec/m6y0-tkfg-sn40-q10p",
"negative_electrode_spec_id": "https://w3id.org/battinfo/spec/d7qr-n581-74c3-7g7r",
"electrolyte_spec_id": "https://w3id.org/battinfo/spec/gpkh-74nj-6sdb-vcsc",
"separator_spec_id": "https://w3id.org/battinfo/spec/wgym-4xfa-pws1-ek1b",
"housing_spec_id": "https://w3id.org/battinfo/spec/ypyh-v38v-r276-snmk",
"notes": [
"LFP 100 Ah prismatic engineering cell (Cell_Design_Tool)."
]
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/86k6-6tzd-c4sf-5s01",
"schema:identifier": "86k6-6tzd-c4sf-5s01",
"schema:name": "EMPA PRISM-LFP-100AH",
"schema:model": "PRISM-LFP-100AH",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "EMPA"
},
"schema:url": "https://www.battery-genome.org/registry/spec/86k6-6tzd-c4sf-5s01",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"PrismaticBattery",
"LithiumIonBattery",
"LithiumIonIronPhosphateBattery",
"LithiumIonGraphiteBattery"
],
"@id": "https://w3id.org/battinfo/spec/86k6-6tzd-c4sf-5s01#described",
"skos:prefLabel": "EMPA PRISM-LFP-100AH",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 100.0
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 3.2
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
}
],
"hasPositiveElectrode": {
"@type": "LithiumIronPhosphateElectrode",
"@id": "https://w3id.org/battinfo/spec/m6y0-tkfg-sn40-q10p#described"
},
"hasNegativeElectrode": {
"@type": "GraphiteElectrode",
"@id": "https://w3id.org/battinfo/spec/d7qr-n581-74c3-7g7r#described"
},
"hasElectrolyte": {
"@id": "https://w3id.org/battinfo/spec/gpkh-74nj-6sdb-vcsc#described"
},
"hasSeparator": {
"@id": "https://w3id.org/battinfo/spec/wgym-4xfa-pws1-ek1b#described"
},
"hasConstituent": {
"@id": "https://w3id.org/battinfo/spec/ypyh-v38v-r276-snmk#described"
}
},
"schema:schemaVersion": "0.2.0",
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "datasheet",
"prov:generatedAtTime": "2026-06-18T08:52:47+00:00"
}
}
EMPA COIN-ZNMNO2-ALK (cell-spec)
The record ships in the installed wheel — load it as a starting point:
import json
from importlib import resources
record = json.loads(
resources.files("battinfo")
.joinpath("data/examples/cell-spec/cell-spec-jgyy-x3h5-drmv-5tn5.json")
.read_text(encoding="utf-8")
)
{
"schema_version": "0.2.0",
"cell_spec": {
"id": "https://w3id.org/battinfo/spec/jgyy-x3h5-drmv-5tn5",
"short_id": "jgyyx3",
"identifier": "cell-spec:jgyy-x3h5-drmv-5tn5",
"name": "EMPA COIN-ZNMNO2-ALK",
"model": "COIN-ZNMNO2-ALK",
"manufacturer": {
"type": "Organization",
"name": "EMPA",
"id": "https://w3id.org/battinfo/organization/mtf8-84d1-addg-nnvv"
},
"cell_format": "coin",
"chemistry": "Zn-MnO2 alkaline",
"positive_electrode_basis": "MnO2",
"negative_electrode_basis": "zinc"
},
"properties": {
"nominal_capacity": {
"value": 0.0015,
"unit": "Ah"
},
"nominal_voltage": {
"value": 1.5,
"unit": "V"
}
},
"provenance": {
"source_type": "datasheet",
"source_file": "manual.json",
"source_url": null,
"retrieved_at": 1781772767
},
"positive_electrode_spec_id": "https://w3id.org/battinfo/spec/277n-cp9k-3g4m-w40y",
"negative_electrode_spec_id": "https://w3id.org/battinfo/spec/3abg-gxzh-6487-9eex",
"electrolyte_spec_id": "https://w3id.org/battinfo/spec/gzt2-hrqq-gsfn-sp94",
"separator_spec_id": "https://w3id.org/battinfo/spec/wgym-4xfa-pws1-ek1b",
"housing_spec_id": "https://w3id.org/battinfo/spec/38af-bpnv-1zmm-32hs",
"notes": [
"Non-Li-ion alkaline Zn-MnO2 coin cell (7M KOH)."
]
}
Emitted by record_to_jsonld, hosted-context mode.
{
"@context": "https://w3id.org/battinfo/context/records/v1.json",
"@type": [
"BatteryCellSpecification",
"schema:ProductModel",
"schema:CreativeWork"
],
"@id": "https://w3id.org/battinfo/spec/jgyy-x3h5-drmv-5tn5",
"schema:identifier": "jgyy-x3h5-drmv-5tn5",
"schema:name": "EMPA COIN-ZNMNO2-ALK",
"schema:model": "COIN-ZNMNO2-ALK",
"schema:manufacturer": {
"@type": "schema:Organization",
"schema:name": "EMPA"
},
"schema:url": "https://www.battery-genome.org/registry/spec/jgyy-x3h5-drmv-5tn5",
"isDescriptionFor": {
"@type": [
"BatteryCell",
"CoinCell",
"LithiumManganeseDioxideBattery"
],
"@id": "https://w3id.org/battinfo/spec/jgyy-x3h5-drmv-5tn5#described",
"skos:prefLabel": "EMPA COIN-ZNMNO2-ALK",
"hasProperty": [
{
"@type": [
"NominalCapacity",
"ConventionalProperty"
],
"skos:prefLabel": "NominalCapacity",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 0.0015
},
"hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
},
{
"@type": [
"NominalVoltage",
"ConventionalProperty"
],
"skos:prefLabel": "NominalVoltage",
"hasNumericalPart": {
"@type": "RealData",
"hasNumberValue": 1.5
},
"hasMeasurementUnit": "https://w3id.org/emmo#Volt"
}
],
"hasPositiveElectrode": {
"@type": "ManganeseDioxideElectrode",
"@id": "https://w3id.org/battinfo/spec/277n-cp9k-3g4m-w40y#described"
},
"hasNegativeElectrode": {
"@type": "ZincElectrode",
"@id": "https://w3id.org/battinfo/spec/3abg-gxzh-6487-9eex#described"
},
"hasElectrolyte": {
"@id": "https://w3id.org/battinfo/spec/gzt2-hrqq-gsfn-sp94#described"
},
"hasSeparator": {
"@id": "https://w3id.org/battinfo/spec/wgym-4xfa-pws1-ek1b#described"
},
"hasConstituent": {
"@id": "https://w3id.org/battinfo/spec/38af-bpnv-1zmm-32hs#described"
}
},
"schema:schemaVersion": "0.2.0",
"dcterms:source": {
"@type": "prov:Entity",
"dcterms:type": "datasheet",
"prov:generatedAtTime": "2026-06-18T08:52:47+00:00"
}
}
Fields#
Generated from the packaged JSON Schemas — the same files battinfo validate and the registry’s publish gate enforce. Every record also carries the shared envelope (schema_version, provenance, and optional notes, funding, contributor, license). Quantities are {value, unit} maps and may also carry value_basis (Measured, Conventional, Rated, or Nominal) and conditions (the parameters under which the value holds, each itself a quantity; a qualitative condition may be value_text alone). In JSON-LD, conditions ride a measurement node the quantity isOutputOf; the voltage_reference key instead becomes a hasMetrologicalReference datum on the quantity, beside its unit. When authoring, an instance references its spec with the spec_id= kwarg; the record stores the self-describing <type>_spec_id key shown in the tables below.
cell-spec fields#
Schema: cell-spec.schema.json · required at top level: schema_version, cell_spec, provenance
The cell_spec block:
Field |
Type |
Required |
Description |
|---|---|---|---|
|
→ SpecIri |
yes |
Canonical IRI of this cell spec. |
|
→ ShortId |
||
|
→ Identifier |
Additional identifier(s) for the cell model, as strings or PropertyValue pairs. |
|
|
string |
yes |
Human-readable display name, typically manufacturer plus model. |
|
string |
yes |
Manufacturer model designation (e.g. ‘ANR26650M1-B’). |
|
→ Organization |
yes |
Organization that manufactures this cell model. |
|
→ BrandOrOrganization |
Brand the cell is marketed under, when different from the manufacturer. |
|
|
string |
Coarse product category label (e.g. ‘battery cell’). |
|
|
string |
Product or datasheet page URL. |
|
|
string or array of string |
Extra JSON-LD type IRIs or labels stacked onto the record’s @type. |
|
|
|
Whether this cell spec is a commercial product, a research cell, or a prototype. |
|
|
|
yes |
Mechanical format of the cell. |
|
string |
Standard size designation (e.g. ‘18650’, ‘21700’, ‘CR2032’). |
|
|
string |
IEC designation code (IEC 60086 / IEC 61960), when defined. |
|
|
string |
Country where the cell is manufactured. |
|
|
boolean |
Whether this cell is rechargeable (true) or primary/single-use (false). |
|
|
integer |
Year the cell model was released or the datasheet was issued. |
|
|
string |
yes |
Overall cell chemistry label (e.g. ‘Li-ion’, ‘NiMH’, ‘Zn-MnO2’). Use the recognised labels where they apply (see the property keys reference); other values are carried as literals. |
|
string |
Positive-electrode active material basis (e.g. ‘LFP’, ‘NMC811’). Use the recognised labels where they apply (see the property keys reference); other values are carried as literals. |
|
|
string |
Negative-electrode active material basis (e.g. ‘graphite’, ‘LTO’, ‘Si-C’). Use the recognised labels where they apply (see the property keys reference); other values are carried as literals. |
|
|
string |
Revision label of the datasheet the spec was taken from. |
|
|
string |
Geographic location of the battery manufacturing plant (EU Battery Regulation Annex VI Part A). |
|
|
|
Battery category per EU Battery Regulation Article 3. |
|
|
→ electrode or string |
The physical reference electrode of a three-electrode build, as an inline electrode holder (a lithium ring or wire is a monolithic |
|
|
|
Electrode configuration as built. Optional; absent means unstated (read as a full cell unless a reference_electrode is present). Stated explicitly it overrides that heuristic: half_cell types the JSON-LD as BatteryHalfCell + HalfCellDevice, three_electrode_cell as ThreeElectrodeCellDevice, full_cell suppresses both. |
Top-level properties: Datasheet-style quantitative properties of the cell model; each key holds a SpecItem quantity. Dimension keys follow the format rules: diameter for cylindrical and coin, length/width/thickness for prismatic and pouch, height for all.
The bibliography block:
Field |
Type |
Required |
Description |
|---|---|---|---|
|
array of → BibliographyEntry |
Publications (papers, reports) that study or document this cell model. |
Top-level specification_comment: Verbatim comment lines carried over from the source specification.
Top-level editorial: Internal editorial metadata — review status and curation notes. Ignored by the publish pipeline; not forwarded to the registry semantic payload.
Top-level construction: Internal construction: assembly type, layering, sheet counts, and electrode-assembly geometry.
Top-level positive_electrode: Inline description of the positive electrode (coating, current collector, tab, properties).
Top-level negative_electrode: Inline description of the negative electrode (coating, current collector, tab, properties).
Top-level working_electrode: Inline working-electrode structure. Role holder for a half_cell or three_electrode_cell: a cell that is not a full cell has no positive/negative polarity to assign, so the electrode under study is the working electrode. Emitted as hasWorkingElectrode with @type WorkingElectrode.
Top-level counter_electrode: Inline counter-electrode structure. Role holder for a half_cell or three_electrode_cell. In a half cell the counter electrode also serves as the reference, so it is emitted with @type [CounterElectrode, ReferenceElectrode]; in a three-electrode cell the separate reference_electrode field carries the reference role.
Top-level electrolyte: Inline electrolyte description (family, salt, solvents, additives).
Top-level separator: Inline separator description (material, structure, coating, and properties).
Top-level housing: Inline housing description (case, cap, terminals, seals, parts).
Top-level positive_electrode_spec_id: IRI of the standalone electrode-spec used as the positive electrode of this cell model; may be given instead of, or alongside, the inline positive_electrode holder.
Top-level negative_electrode_spec_id: IRI of the standalone electrode-spec used as the negative electrode of this cell model; may be given instead of, or alongside, the inline negative_electrode holder.
Top-level working_electrode_spec_id: Optional canonical IRI of a standalone electrode-spec for the working electrode (used instead of, or alongside, the inline working_electrode holder).
Top-level counter_electrode_spec_id: Optional canonical IRI of a standalone electrode-spec for the counter electrode.
Top-level reference_electrode_spec_id: Optional canonical IRI of a standalone electrode-spec for the reference electrode of a three-electrode build (used instead of, or alongside, the inline reference_electrode holder).
Top-level electrolyte_spec_id: IRI of the standalone electrolyte-spec used in this cell model; may be given instead of, or alongside, the inline electrolyte holder.
Top-level separator_spec_id: IRI of the standalone separator-spec used in this cell model; may be given instead of, or alongside, the inline separator holder.
Top-level housing_spec_id: IRI of the standalone housing-spec used in this cell model; may be given instead of, or alongside, the inline housing holder.
Top-level hazardous_substances: Hazardous substances present in the battery (EU Battery Regulation Annex XIII §7.1).
Top-level critical_raw_materials: Critical raw materials present in the battery at more than 0.1% weight by weight (EU Battery Regulation Annex XIII §7.1).
Top-level extinguishing_agent: Usable extinguishing agent for the battery (EU Battery Regulation Annex VI Part A).
cell-instance fields#
Schema: cell-instance.schema.json · required at top level: schema_version, cell_instance, provenance
The cell_instance block:
Field |
Type |
Required |
Description |
|---|---|---|---|
|
→ CellIri |
yes |
Canonical IRI of this cell instance. |
|
→ SpecIri |
yes |
IRI of the cell spec this physical cell realizes. |
|
→ ElectrodeIri |
Canonical IRI of the electrode record (the physical batch or disc) built into this cell as its working electrode. The cell spec says which electrode design the cell uses; this says which built electrode went into this individual cell. |
|
|
→ ElectrodeIri |
Canonical IRI of the electrode record built into this cell as its counter electrode. In a half cell that electrode is also the reference electrode, so it is emitted with both role classes. |
|
|
string |
Human-readable name / label for this cell (e.g. a lab batch ID). The primary identifier; usually present even without a manufacturer serial number. |
|
|
→ ShortId |
||
|
string |
Manufacturer serial number (unique within the product model); optional. |
|
|
string |
Production or lab batch this cell belongs to. |
|
|
string |
Quality grade assigned to this cell (e.g. ‘A’, ‘B’, ‘C’, ‘reject’). |
|
|
→ FlexDate |
Production date. ISO 8601 string (YYYY, YYYY-MM, YYYY-MM-DD) or Unix timestamp. |
|
|
→ FlexDate |
Expiration / best-before date. ISO 8601 string (YYYY, YYYY-MM, YYYY-MM-DD) or Unix timestamp. |
|
|
string |
ISO 8601 date when the battery was first put into service. |
|
|
|
Current status of the battery per EU Battery Regulation Annex XIII. |
|
|
|
Status of this digital product passport record. |
|
|
→ CellIri |
IRI of the previous cell record this passport replaces, e.g. after repurposing. |
|
|
object |
Assessment of how well this record followed the spec that governs it. |
Top-level measured: Measured cell properties using the same keys as the spec’s properties map; read each key as the value measured for this cell (e.g. nominal_capacity = measured discharge capacity, mass = weighed mass).
Top-level datasets: Datasets recorded for this cell. Back-reference to dataset records. dataset.about is the source of truth for what a dataset describes; when records are saved together through a workspace the library fills this list from each dataset’s cell and test links, and hand-authored records may set it directly.
Design notes#
The reasoning behind the model
Composing a cell from parts. The seven reference fields resolve as: positive_electrode_spec_id / negative_electrode_spec_id and working_electrode_spec_id / counter_electrode_spec_id → electrode-spec (which pair applies follows from cell_configuration); electrolyte_spec_id → electrolyte-spec; separator_spec_id → separator-spec; housing_spec_id → housing-spec. A cell may reference, inline, or both — inline holders stay optional, so existing records are unaffected. The JSON-LD emits reference nodes pointing at the target spec’s described component (hasPositiveElectrode: {"@id": "…#described"} — a physical relation lands on a physical individual, never on the spec document), merging the @id onto an inline node when both are present.
References are checked at save. A *_spec_id that points at nothing fails the save with the missing IRI named; resolve_references=False opts out for staged workflows, and save_batch allows references within the batch and validates the completed set. extract_component_specs(cell_spec_record) goes the other way, lifting inline holders into standalone specs so any inline cell can be decomposed and de-duplicated.
The engineering layer. Beyond composition and rated performance, a spec can carry the as-designed build. Deliberately excluded: design-tool scratch math (recomputed, not stored) and state-dependent behaviour (belongs to tests and datasets). Every part follows holder + property: identity fields plus {value, unit} quantities, unknown keys preserved and warned rather than dropped. The housing (case, cap, terminals, seals, parts) is authored inline or as a standalone housing spec; tabs and coatings belong to the electrode; the wound/stacked geometry is the spec’s own construction block.
The full graph, end to end:
cell-spec → cell-instance → test → dataset
↓ references
electrode-spec / electrolyte-spec / separator-spec / housing-spec → material-specs
What the spec node says. One node, three personas: the EMMO information artifact (BatteryCellSpecification — id, schema version, provenance, citation), the schema.org catalogue entity (schema:ProductModel — name, manufacturer, brand, size and IEC codes, release date), and the record (schema:CreativeWork). Every EMMO-axiomatized physical fact — hasProperty quantities, electrode/electrolyte/separator/housing composition, construction — rides the described battery under isDescriptionFor: those relations declare physical subjects (hasProperty’s domain is Referent, hasElectrolyte’s is ElectrochemicalCell), so asserting them on the document would entail a false typing.
The described battery, precisely. The isDescriptionFor individual is an existential witness — “there exists a battery such that …” — satisfied by at least one conforming unit (the universal reading a datasheet gestures at is not expressible at individual level); it is not a prototype object and no identity is asserted between it and any cell instance. It carries a stable name, <spec-IRI>#described, so repeated ingest merges instead of duplicating, other records can reference the design, and *_spec_id reference edges resolve to physical individuals — naming the witness changes none of the above. Declared values carry their epistemic status in the property-nature class (today ConventionalProperty, a value attributed by agreement; RatedProperty joins when it is published upstream), not in a universality claim. An instance links to its spec via hasDescription and schema:isVariantOf and carries its own physical typing — the schema.org ProductModel pattern on the schema layer, EMMO’s own BatterySpecification ⊑ isDescriptionFor some Battery axiom on the semantic layer (which is also where the existential commitment for never-built designs comes from). For SPARQL, the property path isDescriptionFor?/hasProperty reads both this shape and pre-pattern documents in one query.