COMET as Semantic Middleware

Carbon data today is produced in dozens of proprietary formats across LCA tools, ERP systems, registries, and supplier platforms. Each destination—CBAM declarations, PCF exchanges, carbon credit registries—demands a different schema. COMET resolves this by acting as a semantic middleware layer: a shared namespace that any producer can annotate into and any consumer can query from, without bilateral integration agreements.

The mechanism is JSON-LD @context injection. Any existing payload gains interoperability by referencing the COMET context document. OWL class equivalences allow reasoners to infer alignment across standards automatically.

WBCSD PACT v3 Integration

WBCSD PACT v3 (Partnership for Carbon Transparency) is the leading interoperability framework for product-level carbon footprints. COMET provides a complete semantic overlay for every PACT v3 field, enabling PACT payloads to be annotated with COMET context and consumed by any COMET-aware system without data transformation.

2a. Field Mapping: ProductFootprint & CarbonFootprint

PACT v3 Field Type COMET Class COMET Property Notes
idUUIDcomet-pcf:ProductCarbonFootprintpcfIdPrimary identifier
specVersionStringProtocol version
versionIntegerdcterms:versionPayload version
createdDateTimedcterms:created
updatedDateTimedcterms:modified
statusEnumActive/Deprecated
validityPeriodStartDateTimecomet:TimePeriodstartDate
validityPeriodEndDateTimecomet:TimePeriodendDate
companyNameStringcomet:OrganizationorgName
companyIdsURN[]comet:OrganizationorgIdLEI, DUNS
productDescriptionStringcomet:MaterialmaterialName
productIdsURN[]comet:MaterialmaterialIdGTIN
productCategoryCpcStringcomet:MaterialcpcCodeUN CPC
productNameCompanyStringcomet:MaterialtradeName
pcf.declaredUnitEnumcomet-pcf:FunctionalUnitqudtUnitQUDT binding
pcf.unitaryProductAmountDecimalcomet-pcf:FunctionalUnitqudtValue
pcf.pCfExcludingBiogenicDecimalcomet-pcf:PCFfossilGWPkgCO2e/unit
pcf.pCfIncludingBiogenicDecimalcomet-pcf:PCFtotalGWP
pcf.fossilGhgEmissionsDecimalcomet-pcf:PCFfossilEmissions
pcf.biogenicCarbonContentDecimalcomet-pcf:BiogenicCarbonbiogenicCarbonContent
pcf.dLucGhgEmissionsDecimalcomet-pcf:BiogenicCarbonlandUseChange
pcf.biogenicCarbonWithdrawalDecimalcomet-pcf:BiogenicCarbonbiogenicUptake
pcf.aircraftGhgEmissionsDecimalcomet-sc:TransportEventaircraftEmissions
pcf.characterizationFactorsEnumcomet-ef:GWP100ValueipccARAR5/AR6
pcf.crossSectoralStandardsUsedEnum[]comet-pcf:StandardRefstandardName
pcf.productOrSectorSpecificRulesObject[]comet-pcf:PCRReferencepcrName
pcf.boundaryProcessesDescriptionStringcomet-pcf:SystemBoundarydescription
pcf.referencePeriodStartDateTimecomet:TimePeriodstartDate
pcf.referencePeriodEndDateTimecomet:TimePeriodendDate
pcf.geographyCountryISO3166comet:SitesiteCountry
pcf.geographyRegionOrSubregionEnumcomet-ef:GeographyScoperegion
pcf.exemptedEmissionsPercentDecimalcomet-pcf:PCFexemptedPercent
pcf.primaryDataShareDecimalcomet-sc:PrimaryDataSharesharePercent0–100
pcf.dqi.coveragePercentDecimalcomet-sc:DQIcoverageDQI
pcf.dqi.technologicalDQRDecimalcomet-sc:DQItechnologyDQI1–3
pcf.dqi.temporalDQRDecimalcomet-sc:DQItemporalityDQI1–3
pcf.dqi.geographicalDQRDecimalcomet-sc:DQIgeographyDQI1–3
pcf.dqi.completenessDQRDecimalcomet-sc:DQIreliabilityDQI1–3
pcf.assurance.assuranceBooleancomet-ver:AssuranceLevelhasAssurance
pcf.assurance.levelEnumcomet-ver:AssuranceLevellevelTypelimited/reasonable
pcf.assurance.providerNameStringcomet-ver:QualifiedVerifierverifierName
pcf.assurance.completedAtDateTimecomet-ver:VerificationClaimverificationDate
pcf.assurance.standardNameStringcomet-ver:VerificationClaimstandardRef
pcf.allocationRulesDescriptionStringcomet-pcf:AllocationMethoddescription
pcf.packagingGhgEmissionsDecimalcomet-pcf:PCFpackagingEmissions

2b. Complete PACT v3 Payload with COMET Context

JSON-LD — PACT v3 Product Carbon Footprint with COMET Context Injection

{
  "@context": [
    "https://wbcsd.github.io/pact/v3/context.json",
    "https://comet.carbon/v1/jsonld/context.json"
  ],
  "@type": "comet-pcf:ProductCarbonFootprint",
  "id": "urn:uuid:b1c4a89e-3c2d-4f5a-b6e7-d8f9a0b1c2d3",
  "specVersion": "3.0.0",
  "version": 1,
  "created": "2025-03-15T10:30:00Z",
  "status": "Active",
  "companyName": "Stahl AG",
  "companyIds": ["urn:lei:5299000J2N45DDNE4Y28"],
  "productDescription": "Hot-rolled steel coil, basic oxygen furnace route",
  "productIds": ["urn:gtin:04012345678901"],
  "productCategoryCpc": "4121",
  "pcf": {
    "declaredUnit": "kilogram",
    "unitaryProductAmount": 1,
    "pCfExcludingBiogenic": 1.85,
    "fossilGhgEmissions": 1.85,
    "biogenicCarbonContent": 0,
    "characterizationFactors": "AR6",
    "crossSectoralStandardsUsed": ["ISO14067"],
    "boundaryProcessesDescription": "Cradle-to-gate: iron ore extraction through hot rolling",
    "referencePeriodStart": "2024-01-01T00:00:00Z",
    "referencePeriodEnd": "2024-12-31T23:59:59Z",
    "geographyCountry": "DE",
    "primaryDataShare": 78.5,
    "dqi": {
      "coveragePercent": 85.0,
      "technologicalDQR": 1.5,
      "temporalDQR": 1.0,
      "geographicalDQR": 1.0,
      "completenessDQR": 2.0
    },
    "assurance": {
      "assurance": true,
      "coverage": "PCF system",
      "level": "limited",
      "providerName": "Bureau Veritas",
      "completedAt": "2025-02-28T00:00:00Z",
      "standardName": "ISO 14064-3"
    }
  }
}

2c. PACT REST API Endpoints

Method Endpoint Description COMET Context
POST /auth/token OAuth2 client credentials Authentication
GET /2/footprints List all footprints Array of comet-pcf:ProductCarbonFootprint
GET /2/footprints/{id} Get single footprint Single comet-pcf:ProductCarbonFootprint
POST /2/events Publish events PF update notifications

EU CBAM Declaration Mapping

The EU Carbon Border Adjustment Mechanism (Regulation 2023/956) requires importers to declare embedded emissions for iron, steel, aluminium, cement, fertilisers, electricity, and hydrogen. COMET provides a dedicated comet-pcf:CBAMDeclaration class that maps directly to the CBAM XML schema issued by DG TAXUD, enabling automated declaration generation from structured COMET data.

3a. CBAM Field Mapping

CBAM Field Regulation Ref COMET Class COMET Property Type
Authorised declarantArt. 5comet:OrganizationorgId (EORI)String
CN codeAnnex Icomet-pcf:CBAMDeclarationcnCode8-digit
Country of originArt. 35comet:SitesiteCountryISO 3166
Installation IDArt. 10comet:SitesiteIdString
Specific embedded emissionsArt. 7comet-pcf:EmbeddedEmissionsspecificEmbeddedEmissionstCO2e/t
Direct emissionsArt. 7(2)(a)comet-pcf:EmbeddedEmissionsdirectEmissionstCO2e/t
Indirect emissionsArt. 7(2)(b)comet-pcf:EmbeddedEmissionsindirectEmissionstCO2e/t
Production routeAnnex IVcomet-pcf:EmbeddedEmissionsproductionRouteString
Carbon price paidArt. 9comet-mkt:CBAMShadowTariffthirdCountryCarbonPriceEUR
EU ETS benchmarkArt. 31comet-mkt:MarketBenchmarkbenchmarkValuetCO2e/t
Quantity importedArt. 35comet-pcf:FunctionalUnitqudtValuetonnes
Reporting periodArt. 35comet:TimePeriodstartDate/endDateISO 8601
VerificationArt. 8, 18comet-ver:VerificationClaimObject
Precursor emissionsAnnex IVcomet-sc:SupplyChainLinkObject

3b. CBAM XML with COMET Namespace Annotations

XML — CBAM Declaration with COMET Namespace Annotations

<?xml version="1.0" encoding="UTF-8"?>
<cbam:CBAMDeclaration
  xmlns:cbam="urn:ec:taxud:cbam:v1"
  xmlns:comet="https://comet.carbon/v1/core#"
  xmlns:comet-pcf="https://comet.carbon/v1/pcf#"
  xmlns:comet-mkt="https://comet.carbon/v1/market#"
  xmlns:comet-ver="https://comet.carbon/v1/ver#">

  <cbam:declarant>
    <comet:Organization>
      <comet:orgId type="EORI">DE123456789012345</comet:orgId>
      <comet:orgName>Stahl Import GmbH</comet:orgName>
    </comet:Organization>
  </cbam:declarant>

  <cbam:reportingPeriod>
    <comet:TimePeriod>
      <comet:startDate>2026-01-01</comet:startDate>
      <comet:endDate>2026-03-31</comet:endDate>
    </comet:TimePeriod>
  </cbam:reportingPeriod>

  <cbam:goods>
    <cbam:goodsItem>
      <comet-pcf:CBAMDeclaration>
        <comet-pcf:cnCode>72081000</comet-pcf:cnCode>
        <comet-pcf:embeddedEmissions>
          <comet-pcf:specificEmbeddedEmissions unit="tCO2e/t">1.85</comet-pcf:specificEmbeddedEmissions>
          <comet-pcf:directEmissions unit="tCO2e/t">1.62</comet-pcf:directEmissions>
          <comet-pcf:indirectEmissions unit="tCO2e/t">0.23</comet-pcf:indirectEmissions>
          <comet-pcf:productionRoute>Basic Oxygen Furnace (BOF)</comet-pcf:productionRoute>
        </comet-pcf:embeddedEmissions>
        <comet:Site>
          <comet:siteCountry>TR</comet:siteCountry>
          <comet:siteId>TR-INSTALL-2024-0847</comet:siteId>
        </comet:Site>
        <comet-mkt:CBAMShadowTariff>
          <comet-mkt:euETSPrice currency="EUR">68.50</comet-mkt:euETSPrice>
          <comet-mkt:thirdCountryCarbonPrice currency="EUR">12.00</comet-mkt:thirdCountryCarbonPrice>
        </comet-mkt:CBAMShadowTariff>
        <comet-pcf:FunctionalUnit>
          <comet-pcf:qudtValue>500</comet-pcf:qudtValue>
          <comet-pcf:qudtUnit>tonne</comet-pcf:qudtUnit>
        </comet-pcf:FunctionalUnit>
      </comet-pcf:CBAMDeclaration>
    </cbam:goodsItem>
  </cbam:goods>

  <cbam:verification>
    <comet-ver:VerificationClaim>
      <comet-ver:verifierName>Bureau Veritas</comet-ver:verifierName>
      <comet-ver:assuranceLevel>limited</comet-ver:assuranceLevel>
      <comet-ver:standardRef>ISO 14064-3:2019</comet-ver:standardRef>
    </comet-ver:VerificationClaim>
  </cbam:verification>
</cbam:CBAMDeclaration>

3c. XSD Schema Fragment

XSD — COMET CBAMDeclarationType Schema Fragment

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:comet-pcf="https://comet.carbon/v1/pcf#"
  targetNamespace="https://comet.carbon/v1/pcf#">

  <xs:complexType name="CBAMDeclarationType">
    <xs:sequence>
      <xs:element name="cnCode" type="xs:string"/>
      <xs:element name="embeddedEmissions" type="comet-pcf:EmbeddedEmissionsType"/>
      <xs:element name="countryOfOrigin" type="xs:string"/>
      <xs:element name="applicableCarbonPrice" type="xs:decimal" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="EmbeddedEmissionsType">
    <xs:sequence>
      <xs:element name="specificEmbeddedEmissions" type="xs:decimal"/>
      <xs:element name="directEmissions" type="xs:decimal"/>
      <xs:element name="indirectEmissions" type="xs:decimal"/>
      <xs:element name="productionRoute" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

</xs:schema>

CAD Trust Integration

CAD Trust (Climate Action Data Trust) is the interoperability backbone for carbon credit registries, aggregating data from Verra VCS, Gold Standard, ACR, CAR, and others through a unified API. COMET maps all CAD Trust v2.0.2 entities, enabling carbon credit data to flow into COMET-aware procurement, financing, and compliance systems without bilateral registry integrations.

4a. Entity Mapping: CAD Trust v2.0.2

CAD Trust Table Key API Field COMET Class COMET Property Notes
projectcadTrustProjectIdcomet-ver:CADTrustAttestationcadTrustProjectIdPrimary linkage
projectprojectRegistryNamecomet-eac:CertificateRegistryregistryName
projectprojectSectorcomet:ProcessprocessTypeCDM sectors
unitunitSerialIdcomet-eac:EACserialNumberCredit ID
unitunitTypecomet-eac:EACunitTypeAvoidance/Reduction/Removal
unitunitVintageYearcomet-eac:EACvintageYear
unitunitStatuscomet-eac:EACunitStatusIssued/Held/Retired/Cancelled
unitunitCountcomet-eac:EACunitCount
unitunitRetirementBeneficiarycomet-eac:RetirementEventretirementBeneficiary
verificationverificationBodycomet-ver:QualifiedVerifierverifierNameVVB
validationvalidationTypecomet-ver:ValidationRecordvalidationType
labellabelTypecomet-eac:EAClabelTypeCert/Art.6 types
co_benefitcobenefitcomet-eac:CoBenefitsdgGoalSDG 1–17
ratingratingTypecomet-ver:RatingratingProviderCDP/CCQI
programprogramNamecomet-eac:CertificateRegistryprogramName
estimationestimationUnitCountcomet-sc:ActivityDataRecordestimatedQuantity
aef_t2authorization fieldscomet-eac:Article6AuthorizationParis Art. 6
aef_t3transfer fieldscomet-eac:Article6TransferITMO transfers

4b. Carbon Credit JSON-LD with CAD Trust Attestation

JSON-LD — COMET Carbon Removal Certificate with CAD Trust Attestation

{
  "@context": [
    "https://comet.carbon/v1/jsonld/context.json",
    "https://climateactiondata.org/api/v2/context.json"
  ],
  "@type": "comet-eac:CarbonRemovalCert",
  "comet-eac:serialNumber": "VCS-2847-2024-001-to-500",
  "comet-eac:vintageYear": 2024,
  "comet-eac:unitCount": 500,
  "comet-eac:unitType": "Removal - technical",
  "comet-eac:registry": {
    "@type": "comet-eac:CertificateRegistry",
    "comet-eac:registryName": "Verra VCS",
    "comet-eac:registryURI": "https://registry.verra.org/"
  },
  "comet-ver:CADTrustAttestation": {
    "cadTrustProjectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "cadTrustUnitId": "f0e1d2c3-b4a5-6789-0fed-cba987654321"
  },
  "comet:Site": {
    "comet:siteCountry": "KE",
    "comet:siteRegion": "Rift Valley"
  },
  "comet-ver:VerificationClaim": {
    "comet-ver:verifierName": "DNV",
    "comet-ver:assuranceLevel": "reasonable"
  },
  "comet-eac:CoBenefit": [
    { "sdgGoal": "SDG 13 - Climate action" },
    { "sdgGoal": "SDG 15 - Life on land" }
  ],
  "comet-eac:RetirementEvent": {
    "retirementBeneficiary": "Stahl AG",
    "retirementDate": "2025-06-15"
  }
}

GHG Protocol Scope 3 Mapping

The GHG Protocol Corporate Value Chain (Scope 3) Standard defines 15 categories of indirect emissions. COMET classes cover 11 of the 15 categories directly, with the remaining four handled through composition. This table shows the primary COMET class responsible for each category and its expected use case in a corporate carbon accounting workflow.

Cat Description COMET Class Use Case
1Purchased goods & servicescomet-sc:SupplyChainLink + comet-pcf:PCFSupplier PCF ingestion
2Capital goodscomet-sc:SupplyChainLinkAsset embodied carbon
3Fuel & energy activitiescomet-ef:EmissionFactorWell-to-tank factors
4Upstream transportcomet-sc:TransportEventLogistics emissions
5Waste in operationscomet-pcf:SystemBoundaryEnd-of-life module
6Business travelcomet-sc:TransportEventTravel emissions
7Employee commutingcomet-sc:TransportEventCommute estimates
9Downstream transportcomet-sc:TransportEventDistribution
11Use of sold productscomet-pcf:SystemBoundaryUse-phase
12End-of-life treatmentcomet-pcf:SystemBoundaryDisposal/recycling
15Investmentscomet-mkt:CarbonPremiumFinanced emissions

JSON Schema for COMET PCF

This JSON Schema draft-07 document provides machine-readable validation for COMET ProductCarbonFootprint instances. It can be used directly in API validation pipelines, data quality gates, and SHACL-to-JSON toolchains. The schema enforces required fields, numeric constraints, and controlled vocabulary enumerations aligned with ISO 14067 and PACT v3.

JSON Schema — COMET ProductCarbonFootprint (draft-07)

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://comet.carbon/v1/schema/pcf.json",
  "title": "COMET ProductCarbonFootprint",
  "type": "object",
  "required": ["pcfId", "declaredUnit", "fossilGWP", "reportingPeriod", "organization"],
  "properties": {
    "pcfId": { "type": "string", "format": "uuid" },
    "declaredUnit": {
      "type": "string",
      "enum": [
        "kilogram", "liter", "cubic meter",
        "kilowatt hour", "megajoule",
        "tonne kilometre", "square meter"
      ]
    },
    "unitaryProductAmount": { "type": "number", "minimum": 0 },
    "fossilGWP": {
      "type": "number",
      "minimum": 0,
      "description": "kg CO2e per declared unit"
    },
    "totalGWP": { "type": "number" },
    "biogenicCarbon": {
      "type": "object",
      "properties": {
        "biogenicCarbonContent": { "type": "number" },
        "biogenicUptake": { "type": "number" },
        "landUseChange": { "type": "number" },
        "indirectLUC": { "type": "number" }
      }
    },
    "characterizationFactors": { "type": "string", "enum": ["AR5", "AR6"] },
    "systemBoundary": {
      "type": "string",
      "enum": [
        "cradle-to-gate", "gate-to-gate",
        "cradle-to-grave", "cradle-to-cradle"
      ]
    },
    "allocationMethod": {
      "type": "string",
      "enum": [
        "mass", "economic", "energy",
        "physical-causality", "pcr-mandated"
      ]
    },
    "primaryDataShare": { "type": "number", "minimum": 0, "maximum": 100 },
    "reportingPeriod": {
      "type": "object",
      "required": ["startDate", "endDate"],
      "properties": {
        "startDate": { "type": "string", "format": "date" },
        "endDate": { "type": "string", "format": "date" }
      }
    },
    "organization": {
      "type": "object",
      "required": ["orgName"],
      "properties": {
        "orgName": { "type": "string" },
        "orgId": { "type": "string" },
        "siteCountry": { "type": "string", "pattern": "^[A-Z]{2}$" }
      }
    },
    "dataQuality": {
      "type": "object",
      "properties": {
        "coveragePercent": { "type": "number", "minimum": 0, "maximum": 100 },
        "technologicalDQR": { "type": "number", "minimum": 1, "maximum": 3 },
        "temporalDQR": { "type": "number", "minimum": 1, "maximum": 3 },
        "geographicalDQR": { "type": "number", "minimum": 1, "maximum": 3 },
        "completenessDQR": { "type": "number", "minimum": 1, "maximum": 3 }
      }
    },
    "verification": {
      "type": "object",
      "properties": {
        "hasAssurance": { "type": "boolean" },
        "level": { "type": "string", "enum": ["limited", "reasonable"] },
        "verifierName": { "type": "string" },
        "standardRef": { "type": "string" }
      }
    }
  }
}

OWL Turtle Formal Definition

The OWL Turtle representation provides the formal semantic grounding for COMET classes. OWL equivalence axioms link COMET terms to external ontologies (PACT, QUDT), enabling automated reasoning and cross-ontology alignment. SHACL shapes validate instance data against these class definitions at runtime.

OWL Turtle — COMET Class Definitions

@prefix comet-pcf: <https://comet.carbon/v1/pcf#> .
@prefix owl:       <http://www.w3.org/2002/07/owl#> .
@prefix rdfs:      <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:       <http://www.w3.org/2001/XMLSchema#> .
@prefix pact:      <https://wbcsd.github.io/pact/v3/ont#> .
@prefix qudt:      <http://qudt.org/schema/qudt/> .

comet-pcf:ProductCarbonFootprint a owl:Class ;
    rdfs:label "Product Carbon Footprint"@en ;
    rdfs:comment "ISO 14067 product-level carbon footprint result"@en ;
    owl:equivalentClass pact:CarbonFootprint ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty comet-pcf:declaredUnit ;
        owl:cardinality 1
    ] .

comet-pcf:fossilGWP a owl:DatatypeProperty ;
    rdfs:label "Fossil GHG emissions"@en ;
    rdfs:domain comet-pcf:ProductCarbonFootprint ;
    rdfs:range xsd:decimal ;
    owl:equivalentProperty pact:pCfExcludingBiogenic ;
    qudt:unit qudt:KiloGM-CO2e .

comet-pcf:CBAMDeclaration a owl:Class ;
    rdfs:label "CBAM Declaration"@en ;
    rdfs:comment "EU CBAM embedded emissions declaration per Reg. 2023/956"@en ;
    rdfs:subClassOf comet-pcf:ProductCarbonFootprint .

comet-pcf:cnCode a owl:DatatypeProperty ;
    rdfs:label "Combined Nomenclature code"@en ;
    rdfs:domain comet-pcf:CBAMDeclaration ;
    rdfs:range xsd:string .
Back to COMET home