Below are the steps outlining what you need to do to complete this use case:
Create SerialPart Submodel
Create SerialPart Digital Twin
Create Digital Twin Registry (DTR) Asset
Create DTR Access and Usage Policies
Create DTR Contract Definition
Create Submodel Asset
Create Submodel Access and Usage Policies
Create Submodel Contract Definition
Step 1: Create SerialPart Submodel
To create submodel data for digital twin in your submodel server, the data must follow the SerialPart Semantic model schema.
Required properties include: localIdentifiers, manufacturingInformation, globalAssetId and partTypeInformation.
There are several aspect models in the Traceability use case but only the Serial Part aspect model will be used for this exchange.
Sample SerialPart data is available here.
Step 2: Create SerialPart Digital Twin
When creating this SerialPart digital twin, use "digitalTwinType": "PartInstance" in the Digital Twin creation.
Also, in order for Cofinity-X to access your shell descriptor/digital twin, you have to grant us visibility permissions to this specific asset ID manufacturerPartId:
{
"name": "manufacturerPartId",
"value": "123456",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNLCOFINITYEZFA"
}
]
}Each descriptor in the submodelDescriptors section of your shell descriptor should point to one submodel and its asset. This means it should include asset id of your Asset ID created in step 6 as well as your dspEndpoint:
"subprotocolBody": "id=Vehicle_2024-01-01-0001_Submodel_SerialPart;dspEndpoint=https://connector-
partner.edc.aws.bmw.cloud/api/v1/dsp"
Step 3: Create Digital Twin Registry (DTR) Asset
An asset must be created to expose the Digital Twin Registry and its content to the network. This asset should have dct:type set to "cx-taxo:DgitalTwinRegistry" and the baseUrl set to the location of the backend data source of your Digital Twin Registry.
It is recommended to set proxyPath to true, in order for the data plane of the edc to forward the request to the DTR, and to set the proxyMethod to false to restrict 3rd parties from making changes to DTR entries.
Step 4: Create DTR Access and Usage Policies
Catena-X has set strict conventions for participants which kinds of Policies they are expected to process. A Usage policy defines the conditions for initiating a contract negotiation for a particular asset while an Access policy defines determines whether a particular consumer is offered an asset or no, in this case access should be giving to Cofinity-X BPN.
The usage policy for the DTR asset should have the following constraints:
{
"odrl:leftOperand": {
"@id": "cx-policy:FrameworkAgreement"
},
"odrl:operator": {
"@id": "odrl:eq"
},
"odrl:rightOperand": "DataExchangeGovernance:1.0"
},
{
"odrl:leftOperand": {
"@id": "cx-policy:UsagePurpose"
},
"odrl:operator": {
"@id": "odrl:eq"
},
"odrl:rightOperand": "cx.core.digitalTwinRegistry:1"
}The access policy of the DTR asset should give Cofinity access, and is defined in the constraints as follows:
{
"odrl:leftOperand": {
"@id": "cx-policy:Membership"
},
"odrl:operator": {
"@id": "odrl:eq"
},
"odrl:rightOperand": "active"
},
{
"odrl:leftOperand": {
"@id": "BusinessPartnerNumber"
},
"odrl:operator": {
"@id": "odrl:eq"
},
"odrl:rightOperand": "BPNLCOFINITYEZFA"
}
Step 5: Create DTR Contract Definition
A Contract Definition determines whether a policy which has been created will be used as access or usage policy for a particular asset. Therefore, this contract definition links the policies created in step 4 with the asset created in step 3.
Step 6: Create Submodel Asset
Similar to the DTR Asset, an asset must be created for the Submodel data created in Step 1, to expose the data to the Dataspace via the Dataplane. The baseUrl should point to your submodel URL.
Step 7: Create Submodel Access and Usage Policies
The Usage policy should include the following in the constraints:
{
"odrl:leftOperand": {
"@id": "cx-policy:FrameworkAgreement"
},
"odrl:operator": {
"@id": "odrl:eq"
},
"odrl:rightOperand": "DataExchangeGovernance:1.0"
},
{
"odrl:leftOperand": {
"@id": "cx-policy:UsagePurpose"
},
"odrl:operator": {
"@id": "odrl:eq"
},
"odrl:rightOperand": "cx.core.industrycore:1"
}The access policy for the submodel should also give access to Cofinity-X BPN in the constraints as described for the DTR Access Policy.
Step 8: Create Submodel Contract Definition
This Contract definition should link the policies created in step 7 with the asset created in step 6.
Once these steps are completed, send us an email to [email protected] with your EDC endpoint and BPNL.
More details are available in the Tractus-X Kits and github documentation:
