Skip to content

Create a JSON schema for life cycle data#335

Merged
christoph-maurer merged 31 commits into
developfrom
life-cycle-schema
Sep 15, 2025
Merged

Create a JSON schema for life cycle data#335
christoph-maurer merged 31 commits into
developfrom
life-cycle-schema

Conversation

@christoph-maurer
Copy link
Copy Markdown
Member

@christoph-maurer christoph-maurer commented Oct 16, 2024

The new domain lifeCycle shall cover three topics: lifeCycleAssessment, circularity and compliance. The structure of lifeCycleAssessment and circularity is based on a structure of Madaster. The structure of compliance was developed by EPEA part of Drees&Sommer. The JSON Schema lifeCycleData.json was developed by EPEA and Fraunhofer ISE. It shall include all data which is typically relevant to use life cycle data.

As the data structure is already being used, the JSON Schema is not ideal. #358 collects the topics which are strongly recommended to be improved as soon as it is possible.

@christoph-maurer christoph-maurer added the ISE Fraunhofer Institute for Solar Energy Systems ISE label Oct 16, 2024
@christoph-maurer christoph-maurer self-assigned this Oct 16, 2024
Copy link
Copy Markdown
Member Author

@christoph-maurer christoph-maurer left a comment

Choose a reason for hiding this comment

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

@pascalkeppler Thank you for the very good first draft of the schema! Please add commits to this branch to address the comments and let me know whenever you have questions!

Comment thread .vscode/settings.json
Comment thread schemas/lifeCycle.json Outdated
Comment thread schemas/lifeCycle.json Outdated
Comment thread schemas/lifeCycle.json Outdated
Comment thread schemas/lifeCycleAssessmentData.json Outdated
Comment thread schemas/lifeCycleData.json
Comment thread schemas/lifeCycleAssessmentData.json Outdated
Comment thread schemas/lifeCycleData.json
Comment thread schemas/number.json Outdated
Comment thread schemas/number.json Outdated
Comment thread tests/valid/lifeCycleData/lifeCycleTest.json Outdated
@christoph-maurer
Copy link
Copy Markdown
Member Author

christoph-maurer commented Jul 15, 2025

@aklefenz @pascalkeppler Thanks for the commits! Please let me know when you have resolved all comments of the first review. Then I start the second review.

Copy link
Copy Markdown
Member Author

@christoph-maurer christoph-maurer left a comment

Choose a reason for hiding this comment

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

@pascalkeppler @aklefenz Thank you for the substantial improvement! I have fixed what I was able to fix in a day.

Please resolve the 16 comments of this second review. 11 comments are new. 5 comments are from the first review. I have marked only the old ones with @pascalkeppler @aklefenz .

Comment thread schemas/lifeCycleData.json Outdated
Comment thread schemas/lifeCycleData.json Outdated
Comment thread schemas/lifeCycleData.json Outdated
Comment thread schemas/lifeCycleData.json Outdated
Comment thread schemas/lifeCycleData.json Outdated
Comment thread schemas/lifeCycleAssessmentData.json Outdated
Comment thread schemas/lifeCycleAssessmentData.json Outdated
Comment thread schemas/lifeCycleData.json Outdated
Comment thread schemas/lifeCycleData.json Outdated
Comment thread schemas/lifeCycleData.json Outdated
@aklefenz
Copy link
Copy Markdown
Contributor

aklefenz commented Sep 4, 2025

Hi @christoph-maurer thanks for the reviews. I implemented all the feedback of your reviews, wherever possible, and resolved all comments.

@christoph-maurer
Copy link
Copy Markdown
Member Author

@simon-wacker I have reviewed the pull request. Unfortunately, it is already in use. I have collected my recommendations for future improvements in #358 . Do you want to review the pull request?

Copy link
Copy Markdown
Contributor

@simonwacker simonwacker left a comment

Choose a reason for hiding this comment

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

I only had a quick glance and no deep understanding of the schema or the subject domain.

"functionalUnit": {
"type": "string",
"enum": [
"Volume",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For consistency with other enums in the repository use lower camel-case.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Unfortunately it is already in use and we cannot change it, at least now. Discussed with Christoph to add it to future improvements

Comment thread schemas/lifeCycleData.json Outdated
"type": "number",
"description": "Terrestrial ecotoxicity potential (TETP) (kg 1,4-Dichlorobenzene)"
},
"pere": {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Such abbreviations or acronyms make it hard for me to read (and understand).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Unfortunately it is already in use and we cannot change it, at least now. Discussed with Christoph to add it to future improvements

Comment thread schemas/lifeCycleData.json
"type": "boolean",
"description": "The product is used as a base coat"
},
"VocContentPerLiter": {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should be lower camel-case. Also above and below.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Unfortunately it is already in use and we cannot change it, at least now. Discussed with Christoph to add it to future improvements

"enum": ["n.v.", "0", "1", "2", "3", "3.1", "3.2", "4", "5"]
},
"OnlyConstructiveWoodProtection": {
"type": "boolean",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm wondering if those flags could be modeled more elegantly and if they are any interrelations. A more elegant way may be an enumeration for mutually exclusive elements of a similar kind.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the feedback. Unfortunately it is already in use and we cannot change it, at least now. Discussed with Christoph to add it to future improvements

"description": "A full declaration of product ingredients is publicly available. ",
"enum": [
"n.v.",
"available with all CAS numbers",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Using spaces and . makes it difficult to parse those enum members in languages like C# or Java because the enumerations there do not allow these characters. Rather use an expressive lower camel-case string with a-Z0-9 characters and add the description of those in a more readable form in the description of the enum. This also applies to other enums in this file.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the valuable feedback. Unfortunately it is already in use and we cannot change it, at least now. Discussed with Christoph to add it to future improvements

"type": "string",
"description": "All substances in the product have been classified according to the Greenscreen Benchmark approach for safer chemicals",
"enum": [
"n.v.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am wondering what n.v. stands for? no value? Anyway, I would avoid such abbreviations.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Unfortunately it is already in use and we cannot change it, at least now. Discussed with Christoph to add it to future improvements

Comment thread schemas/lifeCycleData.json
Comment thread schemas/lifeCycleData.json Outdated
@christoph-maurer
Copy link
Copy Markdown
Member Author

Thank you @simon-wacker !

@aklefenz @pascalkeppler Can you please resolve the conversations of @simon-wacker's review?

@simonwacker
Copy link
Copy Markdown
Contributor

simonwacker commented Sep 11, 2025

"Already in use" I see. Too bad. Please don't reply with the same message to all conversations. I'm a human and don't want to read it so often. And I'm a bit edgy right now (also very human).

@christoph-maurer
Copy link
Copy Markdown
Member Author

"Already in use" I see. Too bad. Please don't reply with the same message to all conversations. I'm a human and don't want to read it so often. And I'm a bit edgy right now (also very human).

@simon-wacker It's my fault. I should have explained the background before asking you for a review. I have asked @aklefenz to separate the recommendations for improvements in three categories.

  1. Some keys are part of a format developed and used by the company Madaster. We want to collect our proposals for improvement in an issue, but it is difficult to change.
  2. Other keys are currently being used only by EPEA in a product database. We want to collect our proposals for improvement in a second issue so that they can be implemented for example next year.
  3. @aklefenz promised to implement all recommendations which are not affected by 1. and 2.

We can talk about it in our next meeting. Sorry for the bad organization!

@aklefenz
Copy link
Copy Markdown
Contributor

@christoph-maurer I implemented the feedback wherever possible and pushed my commit. I left the comments open where there is sth to add to future improvements.

@christoph-maurer
Copy link
Copy Markdown
Member Author

Thank you, @aklefenz ! Which part is based on keys of Madaster?

@aklefenz
Copy link
Copy Markdown
Contributor

@christoph-maurer everything from circularity and lifeCycleAssessment is based on Madaster

@christoph-maurer christoph-maurer merged commit 8040504 into develop Sep 15, 2025
@christoph-maurer christoph-maurer deleted the life-cycle-schema branch September 15, 2025 12:35
@github-project-automation github-project-automation Bot moved this from 🆕 New to ✅ Done in EQWIN-P Sep 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ISE Fraunhofer Institute for Solar Energy Systems ISE

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

4 participants