Skip to content

Conversation

BirgitBoss
Copy link
Contributor

@BirgitBoss BirgitBoss commented Sep 3, 2025

Findings via PR #10

Major Bugs:

  • Technical Data Battery: correct expectedNumberOfCycle in TechnicalDataBattery (before NumberFullCycles)
  • Nameplate mainly: correct Characteristic for MulitLanguageProperties to shared:MultiLanguageTexts
  • Technical Data Battery: correct payload names for internalResistanceIncreaseOfBatteryCell, Pack and Module (denoted names for initialResistance)
  • TechnicalData Battery: define new Characteristic :TemperatureRangeBoundary for temperature temperatureRangeIdleStateLowerBoundary and temperatureRangeIdleStateUpperBoundary (before it was range min/max but this would be redundant)
  • Performance Battery: correct data type of capacitiyFade: does not have timestamp (BUG capacityFade does not have timestamp batterypass/BatteryPassDataModel#30) - not yet done
  • Technical Data: fix property names of initialInternalResistanceOnBatteryCellLevel, PackLevel and ModuleLevel: remove Level, use "Of" instad of "on" to be consistent with DIN SPEC 91100 and internalResistanceIncreaseBattery*
  • remove generated .aasx, .aas.xml and aas.json for SMT for which aasx is the master and not the aspect model because semanticIds of generated files and original files differ

Minor Bugs:

  • fix bugs with respect to wrong language tags
  • remove incorrect preferred names
  • newly generated files
  • new version of ESMF CLI was used: validation errors corrected
  • remove duplicate definitions from .ttl files like :productOrSectorSpecificCarbonFootprints
  • fix typos in element names

Major changes:

  • add enumeration and values for Contact Information
    • add enumeration and values for Markings
  • deviate from Contact Information recommendation and do not use IRDI as values if there is an enumeration and values defined
  • use bp: <urn:samm:io.BatteryPass.Performance:1.2.1#> instead of bp: <urn:samm:io.BatteryPass.Performance:1.2.0#>
  • use cx: <urn:samm:io.catenax.pcf:8.0.0#> instead of cx: <urn:samm:io.catenax.pcf:7.0.0#>
  • add Namespace.ttl to HandoverDocumention, MaterialComposition, Circularity, ProductCondition. NOTE: not all namespaces already contain a Namespace.ttl

Improvements:

  • update some preferred names
  • add German preferred names for some properties
  • add examples values for Nameplate und ContactInformation for MultiLanguageTexts #35 - Attention: they are not considered and may lead to validation errors in future
  • add example values
  • formatting
  • fix typos
  • new version of ESMF CLI was used: payload names now considered when generating json files etc.
  • READMEs updated

Please be aware: some of the generated files also changed because of changes in reused Aspect Models from BatteryPass Consortium or Tractus-X/Catena-X, e.g.

-- batterypass/BatteryPassDataModel#23: remove editorial special char from descriptions
-- batterypass/BatteryPassDataModel#25: Circularity.ValidEmailAddress wrong regex
-- batterypass/BatteryPassDataModel#27: GeneralProductInformation:1.2.0 exampleValue for addressCountry is wrong
-- batterypass/BatteryPassDataModel#32: NumberOfFullCycles and others should be xsd:positiveInteger
-- batterypass/BatteryPassDataModel#31 ratedEnergy/CertifiedUsableBatteryEnergy: data type & no negative values #31
-- batterypass/BatteryPassDataModel#21 add descriptions to properties
-- batterypass/BatteryPassDataModel#20 optional properties? Add cardinality to Performance, MaeterialComposition and Circularity properties
-- batterypass/BatteryPassDataModel#19 Add example values to Performance, MaeterialComposition and Circularity properties

  • correct typo from :kilogramperkilowatthour to :KilogramPerKilowattHour
  • correct example value from samm:exampleValue "7439-93-2 " to samm:exampleValue "7439-93-2" .

Open issues for generated files:

remove wrong preferred name
fix language for preferred name
- fix language issues
- formatting
- fix German preferredName: Fußabdruck instead of Footprint
- fix language issues
- add German preferred name for productOrSectorSepcificCarbonFootprints
- adding example value for Logo
- formatting
@BirgitBoss BirgitBoss requested a review from tobzahn September 12, 2025 13:33
@BirgitBoss
Copy link
Contributor Author

@tobzahn the process requires a re-review. But please review #34 instead that contains the changes.

Copy link

@tobzahn tobzahn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are still plenty non-printable characters, for example in TechnicalDataBattery.aas.json in many description texts. I think this should be changed.

[ samm:property :initialInternalResistanceOfBatteryCell; samm:payloadName "InitialInternalResistanceOfBatteryCell" ]
[ samm:property :initialInternalResistanceOfBatteryPack; samm:payloadName "InitialInternalResistanceOfBatteryPack" ]
[ samm:property :initialInternalResistanceOfBatteryModule; samm:optional true; samm:payloadName "InitialInternalResistanceOnBatteryModule" ]
[ samm:property :internalResistanceIncreaseOfBatteryCell; samm:optional true; samm:payloadName "InternalResistanceIncreaseOfBatteryCell" ]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are InitialInternalResistanceOnBatteryModule / InternalResistanceIncreaseOfBatteryCell / InternalResistanceIncreaseOfBatteryPack dynamic data? If yes, are they correct in this data model or should they be part of batterypass.product_condition?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DIN DKE SPEC 99100 classifies them as static, this is why they are part of technical data and not of Product Condition

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, therefore the "initial", I get it. For fields like this I think an explanation like "initial value during manufacturing, not to be updated" might avoid misunderstandings. Thanks for the explanation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I unresolved the findings so that decription might be improved

"keys" : [ {
"type" : "GlobalReference",
"value" : "https://api.eclass-cdp.com/0173-1-02-ABI503-003"
"value" : "file:///C:/Users/bsb2si/OneDrive%20-%20Bosch%20Group/__localWorkCloud/__git/admin-shell-io.smt-semantic-models/cli/0173-1%2302-ABI503%23003"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

URL hard coded with Bosch in the string...
There are many hard coded URLs in this file I will not tag all of them.

Copy link

@sebastiankb sebastiankb Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there should be no new semantic Ids introduced. IDTA have already defined them for HandoverDocumentation. See also my comments here

Copy link
Contributor Author

@BirgitBoss BirgitBoss Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bug in the generator and not the value as defined in the .ttl. The model itself seems to be correct. The bug is addressed in eclipse-esmf/esmf-sdk#766. Added to overview of known issues in this PR


: a samm:Namespace ;
samm:preferredName "namespace for handover documentation"@en ;
samm:description "This namespace is reserved for the Aspect Models and elements conformant to Submodel Template Specification (SMT) IDTA-02004 Handover Documentation, Version 2.0."@en .
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A content-wise description is missing from my point of view. What documents should be put in here? Some documents seem to be required to be put into the CircularityBattery data model.

Copy link
Contributor Author

@BirgitBoss BirgitBoss Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tobzahn sorry, I do not understand: this is the namespace for handover documentation, not for Circulartiy. For ciruclarity there would be another namespace description. So far not all namespaces do have such a namespace.ttl: this is new in SAMM and I just wanted to test it whether it helps.

So in this namespace only .ttl for Handover Documentation that reflext the mentioned IDTA specification are contained.

Please check if the improved description for 6dd3612 helps. Thank you

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the confusion. Let me rephrase: To me, it is unclear how to use the HandoverDocumentation data model. I do not understand what can or needs to be put into the data model, therefore I think the description needs to be more clear. (In the diff you linked I did not see an updated description, but maybe I am just looking in the wrong place.)

@tobzahn
Copy link

tobzahn commented Sep 29, 2025

Questions regarding the ProductCarbonFootprint data model:

  • why 'pcf2CoEq' and not 'pcfCo2Eq'?
  • why is 'lifeCyclePhases' a String and a not a fixed set of values?
  • why is 'pcfCalculationMethods' also a String and not a fixed set of values?

I am asking because my understanding is that there need to be several different life cycle phases for all batteries, and since those phases are defined in the regulation this should also be defined in the data model. But if it is just a string everybody will use a different string.

@tobzahn
Copy link

tobzahn commented Oct 2, 2025

According to the regulation:

Annex XIII 4(c): A battery passport must include information on the status of the battery.

The status of the battery must be defined as ‘original’, ‘repurposed’, ‘re-used’, ‘remanufactured’ or ‘waste’.

A new battery passport must be issued when a battery was subject to remanufacturing, repurpose or one of the treatment operations preparing for re-use and preparing for repurpose and is placed on the market again.

Therefore, I would expect to see an attribute called 'batteryStatus' in the product condition data model, with the possible attributes 'original', 'remanufactured', 'repurposed' or 'dismantled'. I found the attribute in the nameplate, but I assume batteryStatus is dynamic?

@tobzahn
Copy link

tobzahn commented Oct 7, 2025

In the battery regulation it is mentioned that the battery passport must include the carbon footprint performance class per Article 7 of the Battery Regulation. I was looking for a corresponding parameter in the CarbonFootprint data model, but I cannot find it. Is it missing or am I looking in the wrong place?

Copy link

@sebastiankb sebastiankb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are more major bugs: There are inconsistencies in the submodels derived from the IDTA submodel original definitions such as DNP, PCF, Doc, Tech. These include semanticIds and shortIds usage (eg, shortIds they do not start with capital letters).

@BirgitBoss BirgitBoss requested a review from sebastiankb October 9, 2025 14:41
@BirgitBoss BirgitBoss requested a review from tobzahn October 9, 2025 15:05
@tobzahn
Copy link

tobzahn commented Oct 17, 2025

Is the "Draft Guidance on Data explanation required in EU battery passport" (CEN/TC 301/WG 18 "Electric vehicles batteries") already considered in this data model?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants