Interoperability: Asset data schemas #3432
-
Hello community! Our question is if there are any extensions offering interoperability within the data space. As an example, is it possible to declare the schema of an asset so that data consumers are able to see beforehand the structure of the data offered by the data provider? One of our ideas was to create a new service where we can upload the schemas and add a link to the schema in the respective asset properties. Another one would be to directly add the schema (as a stringified JSON probably) in a new or existing asset property.
Thank you in advance! (Note: This question was cross-posted from sovity/edc-extensions) |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
You can handle schemas by either of the methods you mentioned. I personally would have a separate schema service and link to it, but that is just preference. The Datspace Protocol Specifications are a clean break from the IDS RAM. The latter does not apply the the DSP specs. |
Beta Was this translation helpful? Give feedback.
-
Approaches that I've seen to this:
{
"@context": {
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"cx-common": "https://w3id.org/catenax/ontology/common#",
"sh": "http://www.w3.org/ns/shacl#",
"edc": "https://w3id.org/edc/v0.0.1/ns/",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"json": "https://json-schema.org/draft/2020-12/schema#"
"asset": {
"@type": "Asset",
"@id": "GraphAsset?oem=TelematicsSample",
"properties": {
"name": "OEM portion of the Behaviour Twin RUL/HI Testdataset.",
"name@de": "OEM Anteil an den Verhaltenszwilling RUL/HI Testdaten.",
"description": "A graph asset/offering mounting Carena-X Testdata for Behaviour Twin.",
"description@de": "Ein Graph Angebot welches Catena-X Testdaten beinhaltet.",
"version": "CX_RuL_Testdata_v1.0.0",
"contenttype": "application/sparql-results+json, application/sparql-results+xml",
"cx-common:publishedUnderContract": "Contract?oem=Graph",
"cx-common:satisfiesRole": "Role?oem=BehaviourTwin",
"rdf:type": "cx-common:GraphAsset",
"rdfs:isDefinedBy": "<https://w3id.org/catenax/usecase/behaviourtwin>,<https://w3id.org/catenax/ontology/common>,<https://w3id.org/catenax/ontology/core>,<https://w3id.org/catenax/ontology/vehicle>,<https://w3id.org/catenax/ontology/vehicle-information>,<https://w3id.org/catenax/ontology/part>,<https://w3id.org/catenax/ontology/loadspectrum>",
"cx-common:implementsProtocol": "cx-common:Protocol?w3c:http:SPARQL",
"sh:shapesGraph": "@prefix cx-common: <https://w3id.org/catenax/ontology/common#>.
@prefix : <GraphAsset?oem=TelematicsSample#> .
@prefix cx-tele: <https://w3id.org/catenax/ontology/loadspectrums#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .@prefix : <GraphAsset?oem=TelematicsSamplet> .
:OemLoadSpectrum rdf:type sh:NodeShape ;
sh:targetClass cx-tele:LoadSpectrum ;
sh:property [
sh:path cx-tele:provisionedBy ;
sh:hasValue <urn:bpn:legal:BPNL00000003AYRE>
] ;
sh:property [
sh:path cx-tele:Version ;
sh:hasValue \"0\"^^xsd:long
] ;
sh:property [
sh:path cx-tele:component ;
sh:class :SupplierParts
] .
:SupplierParts rdf:type sh:NodeShape ;
sh:targetClass cx-tele:VehicleComponent ;
sh:property [
sh:path cx-tele:isProducedBy ;
sh:hasValue <urn:bpn:legal:BPNL00000003B2OM>
] .
",
"cx-common:isFederated": "true^^xsd:boolean" }
},
"dataAddress": {
"id":"GraphAsset?oem=TelematicsSample",
"@type": "DataAddress",
"baseUrl": "{{oemProviderAgent}}/sparql",
"type": "cx-common:Protocol?w3c:http:SPARQL",
"proxyPath": "false",
"proxyMethod": "true",
"proxyQueryParams": "true",
"proxyBody": "true",
"authKey": "{{oemBackendAuthKey}}",
"authCode": "{{oemBackendAuthCode}}",
"cx-common:acceptsContentType":"application/sparql-results+json"
}
} |
Beta Was this translation helpful? Give feedback.
You can handle schemas by either of the methods you mentioned. I personally would have a separate schema service and link to it, but that is just preference.
The Datspace Protocol Specifications are a clean break from the IDS RAM. The latter does not apply the the DSP specs.