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

[Model Update]: SingleLevelBomAsSpecified #274

Merged
merged 22 commits into from
Aug 29, 2023
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
7f40719
added new properties: partGeometry and manufacturerId
maxim-bo Aug 7, 2023
d297efc
fixed release notes date
maxim-bo Aug 7, 2023
48f0536
fix: adjust value to be less error prone
LuisRickert Aug 16, 2023
bd728e9
fix: escape quotation mark, save file as utf-8 encoding
LuisRickert Aug 16, 2023
68a0792
fix: set correct version in release note
LuisRickert Aug 16, 2023
dd128b6
fix: use samm mata model 2.0.0
LuisRickert Aug 16, 2023
4ae8fbf
fix: proper markdown formatting
LuisRickert Aug 16, 2023
4a71fe4
fix: change to samm 2.0
LuisRickert Aug 17, 2023
aa67f87
fix: make model valid
LuisRickert Aug 21, 2023
ef62a3b
fix: remove duplicate properties and unsued definitions
LuisRickert Aug 22, 2023
edd6eb3
fix: add valid random example uuid
LuisRickert Aug 22, 2023
65450f3
fix: rename catenaXIf to assetId
LuisRickert Aug 22, 2023
50a9925
chore: update release notes
LuisRickert Aug 23, 2023
2149f07
fix: typo in release notes
LuisRickert Aug 23, 2023
f9f1260
fix: add valid uuid4 example value
LuisRickert Aug 23, 2023
0e344ff
chore: adjust License header
LuisRickert Aug 23, 2023
0286b39
chore: update license header
LuisRickert Aug 23, 2023
fddfb9e
fix: revert changes
LuisRickert Aug 23, 2023
93ab4f6
fix: unit definition
LuisRickert Aug 25, 2023
5c13485
fix: adjust release notes, adjust reference in example values
LuisRickert Aug 25, 2023
886cd8f
fix: rename childParts to childItems to comply with IRS request
LuisRickert Aug 29, 2023
24958a5
fix: adjust name of item position
LuisRickert Aug 29, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#######################################################################
bs-jokri marked this conversation as resolved.
Show resolved Hide resolved
# Copyright (c) 2022 T-Systems International GmbH
# Copyright (c) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
# Copyright (c) 2022,2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
# Copyright (c) 2022 Volkswagen AG
# Copyright (c) 2022 Robert Bosch GmbH
# Copyright (c) 2022 ZF Friedrichshafen AG
# Copyright (c) 2022 Contributors to the Eclipse Foundation
# Copyright (c) 2022,2023 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
Expand Down Expand Up @@ -112,7 +112,7 @@
bamm:preferredName "Owner Part ID"@en;
bamm:description "This is the key field of the component which usually keeps the part numbers used in after-sales, e.g. when repairing broken parts and searching for a replacement. This ownerPartId itself isn't usually bound to one part version, with the assumption that all part versions with the same ownerPartId are mutually interchangeable."@en;
bamm:characteristic :CatenaXIdTrait;
bamm:exampleValue "uuid!".
bamm:exampleValue "urn:uuid:c4b1b329-07fa-4dc1-b9d0-aa753100672c".
:partVersion a bamm:Property;
bamm:preferredName "Part Version"@en;
bamm:description "This is the version of the part. The engineering will at times supercede an older part version by a newer one, which might have different material aspects, physical dimensions etc., still maintaining compatibility."@en;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
#######################################################################
# Copyright (c) 2022 T-Systems International GmbH
bs-jokri marked this conversation as resolved.
Show resolved Hide resolved
# Copyright (c) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
# Copyright (c) 2022 Volkswagen AG
# Copyright (c) 2022 Robert Bosch GmbH
# Copyright (c) 2022 ZF Friedrichshafen AG
# Copyright (c) 2022 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.single_level_bom_as_specified:2.0.0#>.

:SingleLevelBomAsSpecified a samm:Aspect;
samm:preferredName "Single Level BOM as Specified"@en;
samm:description "The SingleLevelBomAsSpecified defines the view of the OEM or producer of the whole product, e.g. the OEM of a vehicle. It is free of any supplier-related information and specifies the promised and guaranteed content of the whole product to the end customer. This \"top-down\" view is in contrast to the \"bottom-up\" view of the SingleLevelBoMAsPlanned, though several sub-aspects are shared. The BomAsSpecified is merely one aspect, which is attached to the twin of the whole product and itself does neither introduce further twins nor reference them. Instead it merely comprises all functional information required by dismantlers, workshops or requestors for used parts to search for and to make a match on the market place."@en;
samm:properties (:assetId :childParts :manufacturerId);
samm:operations ();
samm:events ().
:assetId a samm:Property;
samm:preferredName "Catena-X ID"@en;
bs-jokri marked this conversation as resolved.
Show resolved Hide resolved
samm:description "A unique reference within Catena-X of this items"@en;
samm:characteristic :assetIdTrait;
samm:exampleValue "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d".
:childParts a samm:Property;
samm:preferredName "Child Parts"@en;
samm:description "The child part of the observed parent item"@en;
samm:characteristic :ChildPartsCharacteristic.
:assetIdTrait a samm-c:Trait;
samm-c:baseCharacteristic samm-c:Text;
samm-c:constraint :Uuidv4RegularExpression.
:ownerPartId a samm:Property;
samm:preferredName "Owner Part ID"@en;
samm:description "This is the key field of the component which usually keeps the part numbers used in after-sales, e.g. when repairing broken parts and searching for a replacement. This ownerPartId itself isn't usually bound to one part version, with the assumption that all part versions with the same ownerPartId are mutually interchangeable."@en;
samm:characteristic :assetIdTrait;
samm:exampleValue "urn:uuid:b4741433-92bb-4027-9a02-bbc64a58d193".
:Uuidv4RegularExpression a samm-c:RegularExpressionConstraint;
samm:preferredName "Catena-X ID 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}$)|(^urn:uuid:[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}$)".
:ChildPartsCharacteristic a samm-c:Set;
samm:preferredName "Child Parts Characteristic"@en;
samm:description "The characteristic of the child part property"@en;
samm:dataType :ChildPartsEntity.
:ChildPartsEntity a samm:Entity;
samm:preferredName "Child Parts Entity"@en;
samm:description "Encapsulates the properties describing the child part item"@en;
samm:properties (:childPartsCategory :part :childPartsCategory :part :childassetId).
:childPartsCategory a samm:Property;
samm:preferredName "Child Parts Category"@en;
samm:description "The BomAsSpecified defines the view of the OEM or producer of the whole product, e.g. the OEM of a vehicle. It is free of any supplier-related information and specifies the promised and guaranteed content of the whole product to the end customer. This \"top-down\" view is in contrast to the \"bottom-up\" view of the SingleLevelBoMAsPlanned, though several sub-aspects are shared. The BomAsSpecified is merely one aspect, which is attached to the twin of the whole product and itself does neither introduce further twins nor reference them. Instead it merely comprises all functional information required by dismantlers, workshops or requestors for used parts to search for and to make a match on the market place."@en;
samm:characteristic samm-c:Text;
samm:exampleValue "e.g. vehicle, winter wheels, bicycle rack".
:part a samm:Property;
samm:preferredName "Part"@en;
samm:description "The description of the part in the primary language of the production facility of the product owner."@en;
samm:characteristic :PartCharacteristic.
:childassetId a samm:Property;
samm:preferredName "Child assetId"@en;
samm:description "Describes the Catena-X ID of the child part"@en;
samm:characteristic samm-c:Text;
samm:exampleValue "urn:uuid:218b26f4-4a0b-4a7f-b2c1-d248927718bf ".
:PartCharacteristic a samm-c:Set;
samm:preferredName "Part Characteristic"@en;
samm:description "Characteristic of the part."@en;
samm:dataType :PartEntity.
:PartEntity a samm:Entity;
samm:preferredName "Part Entity"@en;
samm:description "Entity encapsulating the properies describing a part"@en;
samm:properties (:ownerPartId [
samm:property :partVersion;
samm:optional "true"^^xsd:boolean
] [
samm:property :partQuantity;
samm:optional "true"^^xsd:boolean
] [
samm:property :partDescription;
samm:optional "true"^^xsd:boolean
] [
samm:property :partClassification;
samm:optional "true"^^xsd:boolean
] [
samm:property :lastModifiedOn;
samm:optional "true"^^xsd:boolean
] [
samm:property :createdOn;
samm:optional "true"^^xsd:boolean
] :ownerPartId [
samm:property :partVersion;
samm:optional "true"^^xsd:boolean
] [
samm:property :partQuantity;
samm:optional "true"^^xsd:boolean
] [
samm:property :partDescription;
samm:optional "true"^^xsd:boolean
] [
samm:property :partClassification;
samm:optional "true"^^xsd:boolean
] [
samm:property :lastModifiedOn;
samm:optional "true"^^xsd:boolean
] [
samm:property :createdOn;
samm:optional "true"^^xsd:boolean
] [
samm:property :partGeometry;
samm:optional "true"^^xsd:boolean
]).
:partVersion a samm:Property;
samm:preferredName "Part Version"@en;
samm:description "This is the version of the part. The engineering will at times supercede an older part version by a newer one, which might have different material aspects, physical dimensions etc., still maintaining compatibility."@en;
samm:characteristic samm-c:Text;
samm:exampleValue "05".
:partQuantity a samm:Property;
samm:preferredName "Part Quantity"@en;
samm:description "This is the quantity how often this part is in the item."@en;
samm:characteristic :PartQuantityCharacteristic.
:partDescription a samm:Property;
samm:preferredName "Part Description"@en;
samm:description "The description of the part in the primary language of the production facility of the product owner."@en;
samm:characteristic samm-c:Text;
samm:exampleValue "The steering wheel is nice and round".
:partClassification a samm:Property;
samm:preferredName "Part Classification"@en;
samm:description "The part classification."@en;
samm:characteristic :PartClassificationCharacteristic.
:lastModifiedOn a samm:Property;
samm:preferredName "Last Modified On"@en;
samm:description "The time the item was modified the last time"@en;
samm:characteristic samm-c:Timestamp;
samm:exampleValue "2022-02-03T14:48:54.709Z"^^xsd:dateTime.
:createdOn a samm:Property;
samm:preferredName "Created On"@en;
samm:description "The time the item was created on"@en;
samm:characteristic samm-c:Timestamp;
samm:exampleValue "2022-02-03T14:48:54.709Z"^^xsd:dateTime.
:partGeometry a samm:Property;
samm:preferredName "Part Geometry"@en;
samm:description "Some parts are intended to be used on either the left or right side, e.g. mirrors, hence this entity describes on which side a part is to be used"@en;
samm:characteristic :PartGeometryCharacteristic;
samm:exampleValue "left".
:PartQuantityCharacteristic a samm:Characteristic;
samm:preferredName "Part Quantity Characteristic"@en;
samm:description "The characteristic of the part quantity."@en;
samm:dataType :PartQuantityEntity.
:PartQuantityEntity a samm:Entity;
samm:preferredName "Part Quantity Entity"@en;
samm:description "The entity encapsulating the properties describing the quantity of a part."@en;
samm:properties (:measurementUnit :quantityNumber :measurementUnit :quantityNumber).
:measurementUnit a samm:Property;
samm:preferredName "Measurement Unit"@en;
samm:description "Unit of measurement for the quantity of serialized objects."@en;
samm:characteristic samm-c:UnitReference;
samm:exampleValue "kW"^^samm:curie.
bs-jokri marked this conversation as resolved.
Show resolved Hide resolved
:quantityNumber a samm:Property;
samm:preferredName "Quantity Number"@en;
samm:description "The number of objects related to the measurement unit."@en;
samm:characteristic :NumberOfObjects;
samm:exampleValue "350"^^xsd:double.
:NumberOfObjects a samm:Characteristic;
samm:preferredName "Number of Objects"@en;
samm:description "Quantifiable number of objects in reference to the measurementUnit."@en;
samm:dataType xsd:double.
:PartClassificationCharacteristic a samm-c:Set;
samm:preferredName "Part Classification Characteristic"@en;
samm:description "The characteristic of the part classification."@en;
samm:dataType :PartClassificationEntity.
:PartClassificationEntity a samm:Entity;
samm:preferredName "Part Classification Entity"@en;
samm:description "The entity encapsulating the properties of the part classification."@en;
samm:properties (:key :value).
:key a samm:Property;
samm:preferredName "Key"@en;
samm:description "Key within the classification."@en;
samm:characteristic samm-c:Text;
samm:exampleValue "BMW:PartFamily".
:value a samm:Property;
samm:preferredName "Value"@en;
samm:description "Value within the classification."@en;
samm:characteristic samm-c:Text;
samm:exampleValue "STEEWHL".
:PartGeometryCharacteristic a samm-c:Enumeration;
samm:preferredName "Part Geometry Characteristic"@en;
samm:description "Describes the characteristic of the left or right mark entity with its possible values (left or right)"@en;
samm:dataType xsd:string;
samm-c:values ("left" "right").
:manufacturerId a samm:Property;
samm:preferredName "Manufacturer ID"@en;
samm:description "The ID of the initial issuer of the single level BoMAsSpecified"@en;
samm:characteristic samm-c:Text;
samm:exampleValue "BPNL1234567890LR".
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "status" : "release"}
23 changes: 21 additions & 2 deletions io.catenax.single_level_bom_as_specified/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,36 @@
# Changelog

All notable changes to this model will be documented in this file.

## [Unreleased]

## [2.0.0] - 2023-08-28

### Added
bs-jokri marked this conversation as resolved.
Show resolved Hide resolved

- added new properties: partGeometry (represting the side a part belongs to, e.g. left or right) and manufacturerId (BPN of the manufacturer)
- adjusted bamm meta model to samm meta model since it samm is default since 07.07.2023
- rename property catenaXId to assetId to accomodate ongoing discussion
- removed unused property since it is already defined by samm-characteristics
- adjust examle value of CatenaXIdTrait to a valid random uuid value

### Changed

### Removed

## [1.0.0] - 2023-06-30

### Added

- added new properties: createdOn, lastModifiedOn

### Changed

- changed model name from BomAsSpecified to SingleLevelBomAsSpecified for consistency reasons with other Bom models
- moved new model to a new namespace
- moved new model to a new namespace
- changed existing properties: identifier -> catenaXId, item -> childParts
- minor adjustments of exemplary values to reflect current state of the model

### Removed
- removed non-needed properties: index, quantity

- removed non-needed properties: index, quantity