Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New submodel IndividualAssetDefinition #85

Merged

Conversation

Cvetanka-ZF
Copy link
Contributor

@Cvetanka-ZF Cvetanka-ZF commented Feb 22, 2023

Description

New Model IndividualAssetDefinition required by product AssetTracking (BD Sustainability)
-->

Closes #55

MS2 Criteria

(to be filled out by PR reviewer)

  • the model validates with the BAMM SDS SDK in the version specified in the Readme.md of this repository by the time of the MS2 check (e.g., 'java -jar bamm-cli.jar -i <path-to-aspect-model> -v ). The BAMM CLI is available here and in GitHub
  • use Camel-Case (e.g., "MyModelElement" or "TimeDifferenceGmtId", when in doubt follow https://google.github.io/styleguide/javaguide.html#s5.3-camel-case)
  • the identifiers for all model elements start with a capital letter except for properties
  • the identifier for properties starts with a small letter
  • all model elements at least contain the fields "name" and "description" in English language.
  • no duplicate names or preferredNames within an Aspect (e.g. a Property and the referenced Characteristic should not have the same name)
  • the versioning in the URN follows semantic versioning, where minor version bumps are backwards compatible and major version bumps are not backwards compatible.
  • use abbreviations only when necessary and if these are sufficiently common
  • avoid redundant prefixes in property names (consider adding properties to an enclosing Entity or even adapt the namespace of the model elements, e.g., instead of having two properties DismantlerId and DismantlerName use an Entity Dismantler with the properties name and id or use a URN like io.catenax.dismantler:0.0.1)
  • fields preferredName and description are not the same
  • preferredName should be human readable and follow normal orthography (e.g., no camel case but normal word separation)
  • name of aspect is singular except if it only has one property which is a Collection, List or Set. In theses cases, the aspect name is plural.
  • units are referenced from the BAMM unit catalog whenever possible
  • use constraints to make known constraints from the use case explicit in the aspect model
  • when relying on external standards, they are referenced through a "see" element
  • all properties with an simple type have an example value
  • metadata.json exists with status "release"
  • file RELEASE_NOTES.md exists and contains entries for proposed model changes

MS3 Criteria

(to be filled out by semantic modeling team before merge to main-branch)

  • All required reviewers have approved this PR (see reviewers section)
  • The new aspect (version) will be implemented by at least one data provider
  • The new aspect (version) will be consumed by at least one data consumer
  • There exists valid test data
  • In case of a new (incompatible) major version to an existing version, a migration strategy has been developed
  • The model has at least version '1.0.0'

@Cvetanka-ZF Cvetanka-ZF changed the title New Model IndividualAssetDefinition New submodel IndividualAssetDefinition Feb 22, 2023
fixed wrong namaspace, full stops added in descriptions.
Copy link
Contributor

@bs-jokri bs-jokri left a comment

Choose a reason for hiding this comment

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

Please fix the findings.

@bs-jokri bs-jokri added the MS2_Approved Checklist "MS2 Valid Model" is approved. label Feb 28, 2023
bamm:preferredName "Asset Owner Characteristic"@en;
bamm:description "Characteristic describing the property asset owner."@en;
bamm:dataType xsd:string.
:AssetSerialNumberCharacteristic a bamm:Characteristic;
Copy link
Contributor

Choose a reason for hiding this comment

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

why not just use the TEXT Characterisitic if there isn't something specific?

Copy link
Contributor Author

@Cvetanka-ZF Cvetanka-ZF Mar 24, 2023

Choose a reason for hiding this comment

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

I always use :string for short text input and I use :text for longer expected input such as descriptions, comment content, etc.
In this case Asset Owner (BPNL Number), Serial Number and AssetType are short text input.

Copy link
Contributor

Choose a reason for hiding this comment

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

But you know, that you can completly delete these Characteristics and dont't have to define them in the model if you use the TextCharacteristic?

bamm:preferredName "Asset Serial Number Characteristic"@en;
bamm:description "Characteristic describing the property serial number."@en;
bamm:dataType xsd:string.
:AssetTypeCharacteristic a bamm:Characteristic;
Copy link
Contributor

Choose a reason for hiding this comment

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

why not just use the TEXT Characterisitic if there isn't something specific?

Copy link
Contributor Author

@Cvetanka-ZF Cvetanka-ZF Mar 24, 2023

Choose a reason for hiding this comment

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

I always use :string for short text input and I use :text for longer expected input such as descriptions, comment content, etc.
In this case Asset Owner (BPNL Number), Serial Number and AssetType are short text input.

bamm:description "Trait to ensure UUID v4 data format."@en;
bamm-c:baseCharacteristic :UUIDv4;
bamm-c:constraint :UUIDv4RegularExpression.
:AssetOwnerCharacteristic a bamm:Characteristic;
Copy link
Contributor

Choose a reason for hiding this comment

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

why not just use the TEXT Characterisitic if there isn't something specific?

Copy link
Contributor Author

@Cvetanka-ZF Cvetanka-ZF Mar 24, 2023

Choose a reason for hiding this comment

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

I always use :string for short text input and I use :text for longer expected input such as descriptions, comment content, etc.
In this case Asset Owner (BPNL Number), Serial Number and AssetType are short text input.

Copy link
Contributor

@bs-jokri bs-jokri Mar 24, 2023

Choose a reason for hiding this comment

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

@Cvetanka-ZF I think @catroest refers to the used characteristic. In case there is only a generic text without a specific semantics (ie specific description attached to it) you can use the bamm-c:Text characteristic and not obliged to define one on your own.

However, I think in this case the string carries a specific meaning and it makes sense to have a specific characteristic for that.

@prefix : <urn:bamm:io.catenax.individual_asset_definition:1.0.0#>.
@prefix ext-dimension: <urn:bamm:io.catenax.shared.physical_dimension:1.0.0#>.

:IndividualAssetDefinition a bamm:Aspect;
Copy link
Contributor

Choose a reason for hiding this comment

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

isn't this whole aspect covered by Traceability? if it is just catenaxID, BPNL, serialNumber and type? @jacewski-bosch

Copy link
Contributor Author

@Cvetanka-ZF Cvetanka-ZF Mar 24, 2023

Choose a reason for hiding this comment

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

It was already checked with Traceability (Simon Schulz) and approved MS2. @catroest

:IndividualAssetDefinition a bamm:Aspect;
bamm:preferredName "Individual Asset Definition"@en;
bamm:description "Permanent characteristics of an individual asset."@en;
bamm:properties (:catenaXId :assetOwnerId :assetSerialNumber :assetType ext-dimension:physicalDimensionsProperty);
Copy link
Contributor

Choose a reason for hiding this comment

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

does it validate, if this is "just" written in the linked properies? @bs-jokri

Copy link
Contributor

Choose a reason for hiding this comment

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

@catroest yes, this is syntactically valid. However, the question is if the semantics are ok, ie the description of the property fits the use at hand. @Cvetanka-ZF wdyt. does it fit?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it does fit our use case. As for the validation, it did validate in the Aspect editor without problems. However an error is thrown when trying to generate an example JSON Payload. My colleague Brgit (@birgitZF) told me that this is a known issue in the editor.

@Cvetanka-ZF
Copy link
Contributor Author

Modeling_Team

@bs-jokri bs-jokri added the MS3_Approved Checklist "MS3 Release Model" is approved. The associated pull request can be merged to the "main-br label Apr 3, 2023
@bs-jokri bs-jokri merged commit 710b7d9 into eclipse-tractusx:main Apr 17, 2023
@Cvetanka-ZF Cvetanka-ZF deleted the Cvetanka-ZF-AssetDefinition branch November 13, 2023 09:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MS2_Approved Checklist "MS2 Valid Model" is approved. MS3_Approved Checklist "MS3 Release Model" is approved. The associated pull request can be merged to the "main-br
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[New Model]: IndividualAssetDefinition
3 participants