Skip to content

Commit

Permalink
Merge branch 'main' into feat/shared-uom
Browse files Browse the repository at this point in the history
  • Loading branch information
tom-rm-meyer-ISST committed Oct 20, 2023
2 parents 2b6b809 + c36d1d8 commit e43df93
Show file tree
Hide file tree
Showing 93 changed files with 23,237 additions and 2,838 deletions.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/model_update_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ labels: update
- [ ] The potential update will be either
- [ ] backward compatible or
- [ ] a (chain of) migration strategy(-ies) from all non-deprecated previous versions to the new model will be developed
- [ ] A modeling steward has been assigned
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/new_model_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ labels: creation
- [ ] The proposal references a Catena-X use case
- [ ] Relevant standards are mentioned/linked
- [ ] A first draft of the data structure is provided in an example
- [ ] A modeling steward has been assigned
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Closes #
<!-- The MS2 and MS3 criteria are intended for merges to the main-branch. For small bug-fixes or during the model development, for instance, when merging to a feature branch, you may decide to not fill out the checklists. However, we recommend to follow the MS2 checklist during the development. The MS3 checklist becomes relevant for merges to the main-branch. -->
## 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 SAMM CLI is available [here](https://eclipse-esmf.github.io/esmf-developer-guide/tooling-guide/samm-cli.html) and in [GitHub](https://github.com/eclipse-esmf/esmf-sdk/releases/tag/v2.3.1)
- [ ] the model **validates** with the SAMM SDS SDK in the version specified in the Readme.md of this repository by the time of the MS2 check (e.g., 'java -jar samm-cli.jar aspect \<path-to-aspect-model\> validate ). The SAMM CLI is available [here](https://eclipse-esmf.github.io/esmf-developer-guide/tooling-guide/samm-cli.html) and in [GitHub](https://github.com/eclipse-esmf/esmf-sdk/releases/tag/v2.3.1)
- [ ] 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**
Expand All @@ -20,7 +20,7 @@ Closes #
- [ ] 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
- [ ] units are referenced from the SAMM 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](https://eclipse-esmf.github.io/samm-specification/2.0.0/datatypes.html) have an example value
Expand Down
7 changes: 5 additions & 2 deletions documentation/GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ The following page introduces this process, the involved roles, and the states i
| Modeling Team | Regular meeting round to discuss and moderate the modeling activities. |
| Use Case | Application or scenario were the need for the model creation or update arises. In general, it is assumed that a use case consists of at least one data provider and one data consumer |

### Modeling State 1 (MS1) Request for Model
### Modeling Stage 1 (MS1) Request for Model

When there is a requirement for a new or modified Aspect model, a domain expert from that use case initiates the modeling process by creating a new issue on GitHub (Tab: Issues -> Button: New Issue or [this link](https://github.com/eclipse-tractusx/sldt-semantic-models/issues/new/choose)).
Depending on the type of request (new model, model update, model deprecation), one may use different templates for the issue.
Expand Down Expand Up @@ -66,7 +66,10 @@ A model with can only reach status "STANDARDIZED" if it is "RELEASED" beforehand
A model with status "STANDARDIZED" can only be moved to status "DEPRECATED" if the corresponding standard is "DEPRECATED" as well.

## Retiring a model
Once a model gets the status "DEPRECATED" it should not be used anymore by new use cases. Existing applications should look for a way to migrate to an alternative version or model. In alignment with the overall release cycles of Tractus-X, the modeling team tags the current main branch with the corresponding Tractus-X release and publishes modeling release notes. These release notes contain a hint about all model versions that changed the status to "DEPRECATED" since the previous Tractus-X release. The modeling team will delete these models two Tractus-X releases cycles later. So use cases are advised to react to the deprecation of models within the next release cycle.
Once a model gets the status "DEPRECATED" it should not be used anymore by new use cases. Existing applications should look for a way to migrate to an alternative version or model. In alignment with the overall release cycles of Tractus-X, the modeling team tags the current main branch with the corresponding Tractus-X release and publishes modeling release notes. These release notes contain a hint about all model versions that changed the status to "DEPRECATED" since the previous Tractus-X release. The modeling team will delete these models two Tractus-X releases cycles later (independent of major or minor version change). So use cases are advised to react to the deprecation of models within the next release cycle.

For clarification of the deprecation strategy the following example: A model *A* was released with version 1.0.0 in Tractus-X v2.0.0. In v2.1.0 of Tractus-X a new version 2.0.0 of model *A* was released and version 1.0.0 of model *A* was deprecated. In v3.0.0 of Tractus-X both version 1.0.0 and 2.0.0 of model *A* are still present in the repository.
In the curse of the development cycle towards v3.1.0 of Tractus-X version 1.0.0 of model *A* is deleted so that version 1.0.0 of model *A* is not present in the repository anymore and only version 2.0.0 of model *A* is present when Tractus-X v3.1.0 is released.

## Versioning
The semantic modeling in Tractus-X follows [Semantic Versioning](https://semver.org/). Since the version is included in the Aspect Model's URI
Expand Down
4 changes: 2 additions & 2 deletions generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@


# Adjust if SAMM CLI version changes
JARNAME=samm-cli-2.3.1.jar
JARNAME=samm-cli-2.3.2.jar
SAMMFOLDER=.SAMMCLI/
SAMMCLI=$SAMMFOLDER$JARNAME
# Adjust if SAMM CLI version changes
SAMMCLIURL=https://github.com/eclipse-esmf/esmf-sdk/releases/download/v2.3.1/samm-cli-2.3.1.jar
SAMMCLIURL=https://github.com/eclipse-esmf/esmf-sdk/releases/download/v2.3.2/samm-cli-2.3.2.jar

CATENAXCSS=$SAMMFOLDER/catena-template.css
CATENAXCUSTOMCSSURL=https://raw.githubusercontent.com/eclipse-tractusx/sldt-semantic-hub/main/backend/src/main/resources/catena-template.css
Expand Down
2 changes: 1 addition & 1 deletion io.catenax.batch/1.0.2/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"status": "release"}
{"status": "deprecate"}
2 changes: 1 addition & 1 deletion io.catenax.battery.battery_pass/2.0.0/metadata.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{ "status" : "release"}
{ "status" : "deprecate"}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{ "status" : "release"}
{ "status" : "deprecate"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
#######################################################################
# Copyright (c) 2023 BASF SE
# Copyright (c) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
# Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer IML)
# Copyright (c) 2023 Henkel AG & Co. KGaA
# Copyright (c) 2023 Mercedes Benz AG
# Copyright (c) 2023 SAP SE
# Copyright (c) 2023 Siemens AG
# Copyright (c) 2023 SupplyOn AG
# Copyright (c) 2023 Volkswagen AG
# Copyright (c) 2023 ZF Friedrichshafen AG
# Copyright (c) 2023 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This work is made available under the terms of the
# Creative Commons Attribution 4.0 International (CC-BY-4.0) license,
# which is available at
# https://creativecommons.org/licenses/by/4.0/legalcode.
#
# SPDX-License-Identifier: CC-BY-4.0
#######################################################################

@prefix samm: <urn:samm:org.eclipse.esmf.samm:meta-model:2.0.0#> .
@prefix samm-c: <urn:samm:org.eclipse.esmf.samm:characteristic:2.0.0#> .
@prefix samm-e: <urn:samm:org.eclipse.esmf.samm:entity:2.0.0#> .
@prefix unit: <urn:samm:org.eclipse.esmf.samm:unit:2.0.0#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix : <urn:samm:io.catenax.id_based_request_for_update:1.0.0#> .

:IdBasedRequestForUpdate a samm:Aspect ;
samm:preferredName "ID Based Request For Update"@en ;
samm:description "The requirements for a request for update from another Catena-X Partner of a specific entity.\nIf within the payload, no specific object type is defined (Payload empty), than an update of all objects within the sender reciever relation is requested)."@en ;
samm:properties ( [ samm:property :weekBasedMaterialDemand; samm:optional true ] [ samm:property :weekBasedCapacityGroup; samm:optional true ] ) ;
samm:operations ( ) ;
samm:events ( ) .

:weekBasedMaterialDemand a samm:Property ;
samm:preferredName "Week Based Material Demand List"@en ;
samm:description "Material demands the supplier requests an update for.\nIf within the array, no specific ID (array empty), than an update of all IDs is requested)."@en ;
samm:characteristic :WeekBasedMaterialDemandCharacteristic .

:weekBasedCapacityGroup a samm:Property ;
samm:preferredName "Week Based Capacity Group List"@en ;
samm:description "Capacity groups the customer requests an update for.\nIf within the array, no specific ID (array empty), than an update of all IDs is requested)."@en ;
samm:characteristic :WeekBasedCapacityGroupCharacteristic .

:WeekBasedMaterialDemandCharacteristic a samm-c:Set ;
samm:preferredName "Week Based Material Demand Characteristic"@en ;
samm:description "A list of material demand UUIDs without duplicates an update is requested for."@en ;
samm:dataType :WeekBasedMaterialDemandEntity .

:WeekBasedCapacityGroupCharacteristic a samm-c:Set ;
samm:preferredName "Week Based Capacity Group Characteristic"@en ;
samm:description "A list of capacity group UUIDs without duplicates an update is requested for."@en ;
samm:dataType :WeekBasedCapacityGroupEntity .

:WeekBasedMaterialDemandEntity a samm:Entity ;
samm:preferredName "Week Based Material Demand Entity"@en ;
samm:description "Encapsulates the information that is necessary for an update request."@en ;
samm:properties ( :materialDemandId [ samm:property :changedAt; samm:optional true ] ) .

:WeekBasedCapacityGroupEntity a samm:Entity ;
samm:preferredName "Week Based Capacity Group Entity"@en ;
samm:description "Encapsulates the information that is necessary for an update request."@en ;
samm:properties ( :capacityGroupId [ samm:property :changedAt; samm:optional true ] ) .

:materialDemandId a samm:Property ;
samm:preferredName "Material Demand ID"@en ;
samm:description "The Material Demand ID uniquely identifies the material demand the supplier requests an update for within the business relationship between the customer and its supplier."@en ;
samm:characteristic :UUIDv4IdTrait ;
samm:exampleValue "0157ba42-d2a8-4e28-8565-7b07830c3456" .

:changedAt a samm:Property ;
samm:preferredName "Changed At"@en ;
samm:description "Point in time of the last update known to the requesting business partner. If the requested entity has been changed more recently, the requested party should resend the data. If the changedAt property is not given, the latest entity should be send without precondition."@en ;
samm:characteristic :Timestamp ;
samm:exampleValue "2023-03-10T12:27:11.320Z"^^xsd:dateTime .

:capacityGroupId a samm:Property ;
samm:preferredName "Capacity Group ID"@en ;
samm:description "The Capacity Group ID uniquely identifies the capacity group the supplier requests an update for within the business relationship between the supplier and its customer."@en ;
samm:characteristic :UUIDv4IdTrait ;
samm:exampleValue "0157ba42-d2a8-4e28-8565-7b07830c1110" .

:UUIDv4IdTrait a samm-c:Trait ;
samm:preferredName "UUIDv4 Trait"@en ;
samm:description "Trait to ensure data format for UUIDv4."@en ;
samm-c:baseCharacteristic :UUIDv4 ;
samm-c:constraint :UUIDv4RegularExpression .

:Timestamp a samm:Characteristic ;
samm:preferredName "Timestamp"@en ;
samm:description "Describes a Property which contains the date and time with an optional timezone."@en ;
samm:dataType xsd:dateTime .

:UUIDv4 a samm:Characteristic ;
samm:preferredName "UUIDv4"@en ;
samm:description "A version 4 UUID is a universally unique identifier that is generated using random 32 hexadecimal characters."@en ;
samm:dataType xsd:string .

:UUIDv4RegularExpression a samm-c:RegularExpressionConstraint ;
samm:preferredName "UUIDv4 Regular Expression"@en ;
samm:description "The provided regular expression ensures that the UUID is composed of five groups of characters separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 hexadecimal characters and 4 hyphens)."@en ;
samm:value "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" .

Loading

0 comments on commit e43df93

Please sign in to comment.