diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/development-view/modules.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/development-view/modules.md index 0cfe1af1d3c..c4bc887bc92 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/development-view/modules.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/development-view/modules.md @@ -245,7 +245,7 @@ standard. Actually, this KIT is caring about two bridges, one which bridges AAS information that is described in Catena-X aspect schemas into the Catena-X domain ontologies (the AAS-KA Bridge). And one bridge which is able to emulate -shells and submodels out of a given (federated) virtual graph. +shells and submodels out of a given (federated) virtual graph (the SPARQL-AAS Bridge). [![AAS Bridge(s)](/img/knowledge-agents/aas_bridge_small.png)](/img/knowledge-agents/aas_bridge.png) @@ -268,20 +268,20 @@ There are two main components whose interplay implements the AAS-KA bridge: * A flexible SQL/JSON engine, such as Dremio or in parts also Postgresql which is able to mount raw data in various formats from remote filesystems and APIs. This engine is used to build flat relational views onto a hierarchical json structure that may originate in the value-only-serialization of the AAS. Typically there will be one table/view -per json-schema/submodel template. As an example, see these [scripts](https://github.com/catenax-ng/product-knowledge/tree/main/infrastructure/resources/dremio) -* A graph engine (such as [ontop](https://ontop-vkg.org/guide/) ) that is able to bind/translate SPARQL queries into SQL. As an example, see these [bindings](https://github.com/catenax-ng/product-knowledge/tree/main/infrastructure/oem/resources/trace.obda) +per json-schema/submodel template. As an example, see these [scripts](https://github.com/big-data-spaces/knowledge-agent-deployment/tree/main/infrastructure/resources/dremio) +* A graph engine (such as [ontop](https://ontop-vkg.org/guide/) ) that is able to bind/translate SPARQL queries into SQL. As an example, see these [bindings](https://github.com/big-data-spaces/knowledge-agent-deployment/tree/main/infrastructure/oem/resources/trace.obda) Of course, if the data is available in a native SQL-schema, the SQL/JSON-engine can be omitted. Likewise, even the graph engine can be left out if a sparql-capable database holds its data in conformance to the CX-ontologies. -#### KA->AAS Bridge +#### SPARQL->AAS Bridge In order to form a twin-based, highly-standarized access to any graphTo allow for a more strict In order to form a graph-based, flexible access to AAS backend components, we employ a bridge virtualization module which denormalizes/caches the information inside Shells and Submodels. -Exposing substructures of the distributed knowledge graph via the AAS APIs is possible by deploying the [KA-AAS-Bridge](https://github.com/eclipse-tractusx/knowledge-agents-aas-bridge). This generic tool can be used to expose the graphs structures as AAS by configuring a set of mappings. Each consists of two components +Exposing substructures of the distributed knowledge graph via the AAS APIs is possible by deploying the [KA-AAS-Bridge](https://github.com/eclipse-tractusx/knowledge-agents-aas-bridge) and its [KA-AAS Deployment](../operation-view/bridge). This generic tool can be used to expose the graphs structures as AAS by configuring a set of mappings. Each consists of two components * a SPARQL query extracting "flat" information out of the virtual graph * a mapping configuration providing the basic structure of the target AAS diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/development-view/reference.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/development-view/reference.md index 17c80d5cfb9..8791a07d99b 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/development-view/reference.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/development-view/reference.md @@ -43,14 +43,11 @@ For more information see * Provider-Side Programming Language: Java > 12 * Eclipse Dataspace Connector - * Provider Agent: OnTop - * Inference Agent: Fuseki - * Function Agent: RDF4J + * Provider Agent: OnTop VKP + * Matchmaking Agent: Apache Fuseki + * Remoting Agent: RDF4J + * Conforming Agent: JAX-RS (Jersey) & Glassfish * SPARQL-AAS Bridge: FAAAST -* Consumer-Side Programming Language: Typescript - * Skill Framework: React/Redux - * Knowledge Explorer: React/Redux & Catena-X Portal - * Skill Development Environment: React/Redux & Catena-X Portal ## Sources And Artifacts diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/agent_edc.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/agent_edc.md index f2e61aef3b0..496754cc12a 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/agent_edc.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/agent_edc.md @@ -45,11 +45,11 @@ Add a helm dependency to your umbrella/infrastructure Chart.yaml (this example u - name: tractusx-connector alias: my-connector repository: https://eclipse-tractusx.github.io/charts/dev - version: 0.7.0 + version: 0.7.3 - name: agent-plane alias: my-agent-plane repository: https://eclipse-tractusx.github.io/charts/dev - version: 1.12.19 + version: 1.13.22 ``` Then configure the connector in the values.yaml diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/bridge.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/bridge.md index 1faa8b1695e..2923b3f2d78 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/bridge.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/bridge.md @@ -28,4 +28,1115 @@ title: Bridging For Bridging between Knowledge Agents API and AAS, this KIT recommends deploying the [Tractus-X Knowledge Agents AAS Bridge (KA-AAS)](https://github.com/eclipse-tractusx/knowledge-agents-aas-api) +## Quick Setup Guide for AAS Bridge + +### 1. Add Helm Dependency to the AAS Bridge + +Add a helm dependency to your umbrella/infrastructure Chart.yaml (this example uses a Traveability graph, see [here](https://github.com/eclipse-tractusx/knowledge-agents-aas-bridge/blob/main/sparql-aas/README.md) for more options and full details). + +```yaml + - name: aas-bridge + repository: https://eclipse-tractusx.github.io/charts/dev + version: 1.13.7 + alias: my-aas-bridge +``` + +### 2. Configure the AAS Bridge with Mappings + +Then configure the aas bridge in the values.yaml - especially you introduce so-called mapping domains ("traceability") which are pairs of XSLT stylesheets and SPARQL commands. +Using these mappings, the aas bridge know how to describe digital twins and submodels out of a background graph. + +Each domain will have a mandatory mapping `aas` which describes the digital twins and the existance of submodels. And it will have a dynamic set of submodel mappings for the individual submodels. +Domains will also be representeded as a component of the resulting keys (asset and submodel id's). + +In the following example, we map digital twins with one submodel (`PartAsPlanned`) out of an existing graph following to the [Bill-Of-Material Ontology](https://w3id.org/catenax/ontology/bill-of-material), the [Vehicle Ontology](https://w3id.org/catenax/ontology/vehicle), the [Common (Dataspace) Ontology](https://w3id.org/catenax/ontology/common) and the [Core (Meta) Ontology](https://w3id.org/catenax/ontology/core) - all being part of the [Complete (Merged) Ontology](https://w3id.org/catenax/ontology). + +Since the AAS Bridge internally speaks https, you need to enable your ingress to relay the ssl-layer (see the `annotations` section). + +```yaml +my-aas-bridge: + nameOverride: my-aas-bridge + fullnameOverride: my-aas-bridge + aas: + persistence: + # -- The default sparql server is embedded + sparql: http://sparql.local + endpoints: + default: + path: "/" + ingresses: + - enabled: true + hostname: "aas-bridge.domain" + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" + endpoints: + - default + tls: + enabled: true +domains: + traceability: + aas: + mapping.xslt: |- + + + + + + + / + + + + + + + + + + Instance + + + + + en + + + + + + + ExternalReference + + + Submodel + // + + + + + + + + + + + + select-all.rq: |- + PREFIX cx-common: + PREFIX cx-core: + PREFIX cx-vehicle: + PREFIX cx-bom: + PREFIX rdf: + PREFIX rdfs: + + # + # A request for obtaining all asset administration shells for serialized parts + # + + SELECT DISTINCT ?id ?name ?pasp ?psasp ?hasRecycling ?slbomap ?slusap ?mfr WHERE { + + # all parts are twins + ?id rdf:type cx-vehicle:Part; + cx-core:name ?name. + + # Part + OPTIONAL{ + ?id cx-core:id ?manufacturerPartId. + BIND( as ?pasp). + } + } + ORDER BY DESC(?id) + select-some.rq: |- + PREFIX cx-common: + PREFIX cx-core: + PREFIX cx-vehicle: + PREFIX cx-bom: + PREFIX rdf: + PREFIX rdfs: + + # + # A request for obtaining specific asset administration shells for serialized parts + # + + SELECT DISTINCT ?id ?name ?pasp ?psasp ?hasRecycling ?slbomap ?slusap ?mfr WHERE { + + VALUES(?id) { + (%s) + } + + # all parts are twins + ?id rdf:type cx-vehicle:Part; + cx-core:name ?name. + + # Part + OPTIONAL{ + ?id cx-core:id ?manufacturerPartId. + BIND( as ?pasp). + } + } + ORDER BY DESC(?id) + partAsPlanned: + mapping.xslt: |- + + + + + + + / + + + // + + + + + + + + + + + Instance + + + + + + ExternalReference + + + Submodel + + + + + + + + + + + + + Instance + + ModelReference + + + ConceptDescription + + + + + + PartAsPlanned + + + en + A Part AsPlanned represents an item in the Catena-X Bill of Material (BOM) in As-Planned lifecycle status. + + + + + Key + catenaXId + + + en + The fully anonymous Catena-X ID of the serialized part, valid for the Catena-X dataspace. + + + + + en + Catena-X Identifier + + + + ModelReference + + + ConceptDescription + urn:bamm:io.catenax.part_as_planned:1.0.1#catenaXId + + + + xs:string + + + + partTypeInformation + + + en + Encapsulation for data related to the part type + + + + + en + Part Type Information Entity + + + + + Key + manufacturerPartId + + + en + Part ID as assigned by the manufacturer of the part. The Part ID identifies the part (as designed) in the manufacturer`s dataspace. The Part ID does not reference a specific instance of a part and thus should not be confused with the serial number. + + + + + en + Manufacturer Part ID + + + + ModelReference + + + ConceptDescription + urn:bamm:io.catenax.part_as_planned:1.0.1#manufacturerPartId + + + + xs:string + + + + Value + nameAtManufacturer + + + en + Name of the part as assigned by the manufacturer. + + + + + en + Name at Manufacturer + + + + ModelReference + + + ConceptDescription + urn:bamm:io.catenax.part_as_planned:1.0.1#nameAtManufacturer + + + + xs:string + + + + Enum + classification + + + en + Classification of the part as assigned by the manufacturer. + + + + + en + Product Classification + + + + ModelReference + + + ConceptDescription + urn:bamm:io.catenax.part_as_planned:1.0.1#classification + + + + xs:string + + + + + + validityPeriod + + + en + Temporal validity period of the part. + + + + + en + validityPeriod + + + + + Time + validFrom + + + en + Start date of validity period. + + + + + en + Valid From + + + + ModelReference + + + ConceptDescription + urn:bamm:io.catenax.part_as_planned:1.0.1#validFrom + + + + xs:dateTime + + + + Time + validFrom + + + en + End date of validity period. + + + + + en + Valid To + + + + ModelReference + + + ConceptDescription + urn:bamm:io.catenax.part_as_planned:1.0.1#validTo + + + + xs:dateTime + + + + + + + + + + + + + + select-all.rq: |- + PREFIX cx-common: + PREFIX cx-core: + PREFIX cx-vehicle: + PREFIX rdf: + PREFIX rdfs: + + # Select all part information + + SELECT ?catenaXId ?validFrom ?validTo ?classification ?manufacturerPartId ?nameAtManufacturer + WHERE { + ?catenaXId rdf:type cx-vehicle:Part; + cx-core:id ?manufacturerPartId; + cx-core:name ?nameAtManufacturer; + cx-vehicle:productionPeriodStart ?validFrom; + cx-vehicle:productionPeriodEnd ?validTo. + BIND('product' AS ?classification). + } + ORDER BY DESC(?catenaXId) + select-some.rq: |- + PREFIX cx-common: + PREFIX cx-core: + PREFIX cx-vehicle: + PREFIX rdf: + PREFIX rdfs: + + # Select some part information + + SELECT ?catenaXId ?validFrom ?validTo ?classification ?manufacturerPartId ?nameAtManufacturer + WHERE { + + VALUES(?catenaXId) { + (%s) + } + + ?catenaXId rdf:type cx-vehicle:Part; + cx-core:id ?manufacturerPartId; + cx-core:name ?nameAtManufacturer; + cx-vehicle:productionPeriodStart ?validFrom; + cx-vehicle:productionPeriodEnd ?validTo. + + BIND('product' AS ?classification). + } + ORDER BY DESC(?catenaXId) +``` + +### 3. Testdrive the AAS Bridge + +After the aas bridge has been setup, you may invoke AAS Api calls against it + +```console +curl --location 'https://aas-bridge.domain/api/v3.0/description' +``` + +and you should receive an answer, such as + +```json +{ + "profiles": [ + "https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRepositoryServiceSpecification/SSP-001", + "https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-001", + "https://admin-shell.io/aas/API/3/0/ConceptDescriptionServiceSpecification/SSP-001", + "https://admin-shell.io/aas/API/3/0/DiscoveryServiceSpecification/SSP-001" + ] +} +``` + +To get the list of shells, you may invoke + +```console +curl --location 'http://aas-bridge.domain/api/v3.0/shells' +``` + +and you should receive an answer, such as + +```json +{ + "result": [ + { + "modelType": "AssetAdministrationShell", + "assetInformation": { + "assetKind": "Instance", + "globalAssetId": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" + }, + "submodels": [ + { + "keys": [ + { + "type": "Submodel", + "value": "traceability/urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" + } + ], + "type": "ExternalReference" + } + ], + "id": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b", + "description": [ + { + "language": "en", + "text": "Tier C Piston Rod" + } + ], + "idShort": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" + }, + ... + { + "modelType": "AssetAdministrationShell", + "assetInformation": { + "assetKind": "Instance", + "globalAssetId": "traceability/urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e" + }, + "submodels": [ + { + "keys": [ + { + "type": "Submodel", + "value": "traceability/urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned/urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e" + } + ], + "type": "ExternalReference" + } + ], + "id": "traceability/urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e", + "description": [ + { + "language": "en", + "text": "Vehicle Model A" + } + ], + "idShort": "traceability/urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e" + } + ], + "paging_metadata": { + "cursor": null + } +} +``` + +To get the list of shells, you may invoke + +```console +curl --location 'http://oem-aas-bridge.knowledge.int.catena-x.net/api/v3.0/submodels?content=value&level=deep' +``` + +and you should receive an answer, such as + +```json +{ + "result": [ + { + "modelType": "Submodel", + "kind": "Instance", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned" + } + ], + "type": "ModelReference" + }, + "id": "traceability/urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b", + "description": [ + { + "language": "en", + "text": "A Part AsPlanned represents an item in the Catena-X Bill of Material (BOM) in As-Planned lifecycle status. " + } + ], + "idShort": "PartAsPlanned", + "submodelElements": [ + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#catenaXId" + } + ], + "type": "ModelReference" + }, + "value": "urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b", + "valueType": "xs:string", + "category": "Key", + "description": [ + { + "language": "en", + "text": "The fully anonymous Catena-X ID of the serialized part, valid for the Catena-X dataspace." + } + ], + "displayName": [ + { + "language": "en", + "text": "Catena-X Identifier" + } + ], + "idShort": "catenaXId" + }, + { + "modelType": "SubmodelElementCollection", + "description": [ + { + "language": "en", + "text": "Encapsulation for data related to the part type" + } + ], + "displayName": [ + { + "language": "en", + "text": "Part Type Information Entity" + } + ], + "idShort": "partTypeInformation", + "value": [ + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#manufacturerPartId" + } + ], + "type": "ModelReference" + }, + "value": "5760234-23", + "valueType": "xs:string", + "category": "Key", + "description": [ + { + "language": "en", + "text": "Part ID as assigned by the manufacturer of the part. The Part ID identifies the part (as designed) in the manufacturer`s dataspace. The Part ID does not reference a specific instance of a part and thus should not be confused with the serial number." + } + ], + "displayName": [ + { + "language": "en", + "text": "Manufacturer Part ID" + } + ], + "idShort": "manufacturerPartId" + }, + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#nameAtManufacturer" + } + ], + "type": "ModelReference" + }, + "value": "Tier C Piston Rod", + "valueType": "xs:string", + "category": "Value", + "description": [ + { + "language": "en", + "text": "Name of the part as assigned by the manufacturer." + } + ], + "displayName": [ + { + "language": "en", + "text": "Name at Manufacturer" + } + ], + "idShort": "nameAtManufacturer" + }, + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#classification" + } + ], + "type": "ModelReference" + }, + "value": "product", + "valueType": "xs:string", + "category": "Enum", + "description": [ + { + "language": "en", + "text": "Classification of the part as assigned by the manufacturer." + } + ], + "displayName": [ + { + "language": "en", + "text": "Product Classification" + } + ], + "idShort": "classification" + } + ] + }, + { + "modelType": "SubmodelElementCollection", + "description": [ + { + "language": "en", + "text": "Temporal validity period of the part." + } + ], + "displayName": [ + { + "language": "en", + "text": "validityPeriod" + } + ], + "idShort": "validityPeriod", + "value": [ + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#validFrom" + } + ], + "type": "ModelReference" + }, + "value": "2014-02-24", + "valueType": "xs:dateTime", + "category": "Time", + "description": [ + { + "language": "en", + "text": "Start date of validity period." + } + ], + "displayName": [ + { + "language": "en", + "text": "Valid From" + } + ], + "idShort": "validFrom" + }, + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#validTo" + } + ], + "type": "ModelReference" + }, + "value": "2027-11-04", + "valueType": "xs:dateTime", + "category": "Time", + "description": [ + { + "language": "en", + "text": "End date of validity period." + } + ], + "displayName": [ + { + "language": "en", + "text": "Valid To" + } + ], + "idShort": "validFrom" + } + ] + } + ] + }, + --- + { + "modelType": "Submodel", + "kind": "Instance", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned" + } + ], + "type": "ModelReference" + }, + "id": "traceability/urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned/urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e", + "description": [ + { + "language": "en", + "text": "A Part AsPlanned represents an item in the Catena-X Bill of Material (BOM) in As-Planned lifecycle status. " + } + ], + "idShort": "PartAsPlanned", + "submodelElements": [ + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#catenaXId" + } + ], + "type": "ModelReference" + }, + "value": "urn:uuid:0733946c-59c6-41ae-9570-cb43a6e4c79e", + "valueType": "xs:string", + "category": "Key", + "description": [ + { + "language": "en", + "text": "The fully anonymous Catena-X ID of the serialized part, valid for the Catena-X dataspace." + } + ], + "displayName": [ + { + "language": "en", + "text": "Catena-X Identifier" + } + ], + "idShort": "catenaXId" + }, + { + "modelType": "SubmodelElementCollection", + "description": [ + { + "language": "en", + "text": "Encapsulation for data related to the part type" + } + ], + "displayName": [ + { + "language": "en", + "text": "Part Type Information Entity" + } + ], + "idShort": "partTypeInformation", + "value": [ + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#manufacturerPartId" + } + ], + "type": "ModelReference" + }, + "value": "ZX-55", + "valueType": "xs:string", + "category": "Key", + "description": [ + { + "language": "en", + "text": "Part ID as assigned by the manufacturer of the part. The Part ID identifies the part (as designed) in the manufacturer`s dataspace. The Part ID does not reference a specific instance of a part and thus should not be confused with the serial number." + } + ], + "displayName": [ + { + "language": "en", + "text": "Manufacturer Part ID" + } + ], + "idShort": "manufacturerPartId" + }, + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#nameAtManufacturer" + } + ], + "type": "ModelReference" + }, + "value": "Vehicle Model A", + "valueType": "xs:string", + "category": "Value", + "description": [ + { + "language": "en", + "text": "Name of the part as assigned by the manufacturer." + } + ], + "displayName": [ + { + "language": "en", + "text": "Name at Manufacturer" + } + ], + "idShort": "nameAtManufacturer" + }, + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#classification" + } + ], + "type": "ModelReference" + }, + "value": "product", + "valueType": "xs:string", + "category": "Enum", + "description": [ + { + "language": "en", + "text": "Classification of the part as assigned by the manufacturer." + } + ], + "displayName": [ + { + "language": "en", + "text": "Product Classification" + } + ], + "idShort": "classification" + } + ] + }, + { + "modelType": "SubmodelElementCollection", + "description": [ + { + "language": "en", + "text": "Temporal validity period of the part." + } + ], + "displayName": [ + { + "language": "en", + "text": "validityPeriod" + } + ], + "idShort": "validityPeriod", + "value": [ + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#validFrom" + } + ], + "type": "ModelReference" + }, + "value": "2017-01-03", + "valueType": "xs:dateTime", + "category": "Time", + "description": [ + { + "language": "en", + "text": "Start date of validity period." + } + ], + "displayName": [ + { + "language": "en", + "text": "Valid From" + } + ], + "idShort": "validFrom" + }, + { + "modelType": "Property", + "semanticId": { + "keys": [ + { + "type": "ConceptDescription", + "value": "urn:bamm:io.catenax.part_as_planned:1.0.1#validTo" + } + ], + "type": "ModelReference" + }, + "value": "2029-11-15", + "valueType": "xs:dateTime", + "category": "Time", + "description": [ + { + "language": "en", + "text": "End date of validity period." + } + ], + "displayName": [ + { + "language": "en", + "text": "Valid To" + } + ], + "idShort": "validFrom" + } + ] + } + ] + } + ], + "paging_metadata": { + "cursor": null + } +} +``` + +To access a particular shell, you may + +```console +curl --location 'http://oem-aas-bridge.knowledge.int.catena-x.net/api/v3.0/shells/dHJhY2VhYmlsaXR5L3Vybjp1dWlkOmY1ZWZiZjQ1LTdkODQtNDQ0Mi1iM2I4LTA1Y2YxYzVjNWEwYg==' +``` + +which would return + +```json +{ + "modelType": "AssetAdministrationShell", + "assetInformation": { + "assetKind": "Instance", + "globalAssetId": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" + }, + "submodels": [ + { + "keys": [ + { + "type": "Submodel", + "value": "traceability/urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" + } + ], + "type": "ExternalReference" + } + ], + "id": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b", + "description": [ + { + "language": "en", + "text": "Tier C Piston Rod" + } + ], + "idShort": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" +} +``` + +A particular submodel can be selected as follows + +```console +curl --location 'http://oem-aas-bridge.knowledge.int.catena-x.net/api/v3.0/shells/dHJhY2VhYmlsaXR5L3Vybjp1dWlkOmY1ZWZiZjQ1LTdkODQtNDQ0Mi1iM2I4LTA1Y2YxYzVjNWEwYg==' +``` + +which would produce a result like + +```json +{ + "modelType": "AssetAdministrationShell", + "assetInformation": { + "assetKind": "Instance", + "globalAssetId": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" + }, + "submodels": [ + { + "keys": [ + { + "type": "Submodel", + "value": "traceability/urn:bamm:io.catenax.part_as_planned:1.0.1#PartAsPlanned/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" + } + ], + "type": "ExternalReference" + } + ], + "id": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b", + "description": [ + { + "language": "en", + "text": "Tier C Piston Rod" + } + ], + "idShort": "traceability/urn:uuid:f5efbf45-7d84-4442-b3b8-05cf1c5c5a0b" +} +``` + (C) 2021,2024 Contributors to the Eclipse Foundation. SPDX-License-Identifier: CC-BY-4.0 diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/deployment.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/deployment.md index 83b01cf7326..9920eee0eaa 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/deployment.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/deployment.md @@ -54,7 +54,8 @@ role that the business partner takes. The roles are described in more detail in As a consumer, you just need to: * enable your [dataspace connector](agent_edc) to initiate/delegate the required Agent protocols (here: SparQL-over-Http). -* (optionally) mount your connector/matchmaking agent as a remote repository into your enterprise graph infrastructure. +* (optionally) use a separate matchmaking agent to securely host your own business and meta data in the graph storage behind the connector layer +* (optionally) mount your matchmaking agent as a remote repository into your enterprise graph infrastructure. ## Role: As A Skill Provider @@ -69,6 +70,7 @@ and which require computational resources at the provider side) instead of distr As a provider, you need to * enable your [dataspace connector](agent_edc) to receive/internalize the required Agent protocols. +* (optionally) use a separate matchmaking agent to securely publish your own business and meta data from the graph storage behind the connector layer Depending on the kind of provisioning, you will setup additional internal "agents" (endpoints). @@ -98,13 +100,15 @@ The Stable Environment is a minimal example environment exhibiting all roles and Knowledge Agents on Stable is deployed on the following two tenants * App Provider 1 (BPNL000000000001) - * Dataspace Connector (Postgresl, Hashicorp-Vault) - * Agent-Plane (Postgresql, Hashicorp-Vault) - * Provisioning Agent incl. Local Database - * Remoting Agent (against a Public WebService) + * Dataspace Connector (Postgresl, Hashicorp-Vault) "provider-connector" see [manifest](#app-provider-1-dataspace-connector-manifest) + * Agent-Plane (Postgresql, Hashicorp-Vault) "provider-agent-plane" see [manifest](#app-provider-1-agent-plane-manifest) + * Provisioning Agent incl. Local Database "sql-agent" see [manifest](#4-deploy-app-provider-1-provisioning-agent) + * Remoting Agent (against a Public WebService) "api-agent" see [manifest](#5-deploy-app-provider-1-remoting-agent) + * AAS Bridge (against a prerecorded )"aas-bridge" see [manifest](#6-deploy-app-provider-1-aas-bridge) * App Consumer 4 (BPNL0000000005VV) - * Dataspace Connector (Postgresl, Hashicorp-Vault) - * Agent-Plane (Postgresql, Hashicorp-Vault) + * Dataspace Connector (Postgresl, Hashicorp-Vault) "consumer-connector" see [manifest](#app-consumer-4-datspace-connector-manifest) + * Agent-Plane (Postgresql, Hashicorp-Vault) "consumer-agent-plane" see [manifest](#app-consumer-4-agent-plane-manifest) + * Matchmaking-Agent "consumer-agent" see [manifest](#app-consumer-4-matchmaking-agent-manifest) ### 1. Prepare the Two Tenants @@ -137,11 +141,13 @@ We give the complete manifests but hide the secrets. #### App Provider 1 Dataspace Connector Manifest +Deployed as "provider-connector" + ```yaml project: project-knowledge source: repoURL: 'https://eclipse-tractusx.github.io/charts/dev' - targetRevision: 0.7.0 + targetRevision: 0.7.3 plugin: env: - name: HELM_VALUES @@ -190,7 +196,16 @@ source: pullPolicy: Always endpoints: management: - authKey: **** + control: + port: 8083 + path: "/control" + protocol: + port: 8084 + path: "/api/v1/dsp" + management: + port: 8081 + path: "/management" + authKey: *** bdrs: server: url: https://bpn-did-resolution-service.int.demo.catena-x.net/api/directory @@ -206,21 +221,12 @@ source: # -- Enables TLS on the ingress resource tls: enabled: true - env: - EDC_DATAPLANE_SELECTOR_AGENTPLANE_URL: http://agent-plane-provider:8087/api/signaling/v1/dataflows - EDC_DATAPLANE_SELECTOR_AGENTPLANE_SOURCETYPES: cx-common:Protocol?w3c:http:SPARQL,cx-common:Protocol?w3c:http:SKILL - EDC_DATAPLANE_SELECTOR_AGENTPLANE_TRANSFERTYPES: HttpData-PULL - EDC_DATAPLANE_SELECTOR_AGENTPLANE_DESTINATIONTYPES: HttpProxy - EDC_DATAPLANE_SELECTOR_AGENTPLANE_PROPERTIES: '{ "publicApiUrl": "https://provider-agent.stable.demo.catena-x.net/api/public/" }' - EDC_IAM_TRUSTED-ISSUER_0-ISSUER_ID: did:web:dim-static-prod.dis-cloud-prod.cfapps.eu10-004.hana.ondemand.com:dim-hosted:2f45795c-d6cc-4038-96c9-63cedc0cd266:holder-iatp dataplane: token: signer: privatekey_alias: consumer-key verifier: publickey_alias: consumer-cert - env: - EDC_IAM_TRUSTED-ISSUER_0-ISSUER_ID: did:web:dim-static-prod.dis-cloud-prod.cfapps.eu10-004.hana.ondemand.com:dim-hosted:2f45795c-d6cc-4038-96c9-63cedc0cd266:holder-iatp chart: tractusx-connector destination: server: 'https://kubernetes.default.svc' @@ -229,11 +235,13 @@ destination: #### App Provider 1 Agent Plane Manifest +Deployed as "provider-agent-plane" + ```yaml project: project-knowledge source: repoURL: 'https://eclipse-tractusx.github.io/charts/dev' - targetRevision: 1.12.19 + targetRevision: 1.13.22 plugin: env: - name: HELM_VALUES @@ -261,13 +269,13 @@ source: trustedIssuers: - did:web:dim-static-prod.dis-cloud-prod.cfapps.eu10-004.hana.ondemand.com:dim-hosted:2f45795c-d6cc-4038-96c9-63cedc0cd266:holder-iatp sts: - dim: - url: https://dis-integration-service-prod.eu10.dim.cloud.sap/api/v2.0.0/iatp/catena-x-portal - oauth: - token_url: https://bpnl000000000001-authentication.eu10.hana.ondemand.com/oauth/token - client: - id: sa4 - secret_alias: stable-provider-dim + dim: + url: https://dis-integration-service-prod.eu10.dim.cloud.sap/api/v2.0.0/iatp/catena-x-portal + oauth: + token_url: https://bpnl000000000001-authentication.eu10.hana.ondemand.com/oauth/token + client: + id: sa4 + secret_alias: stable-provider-dim postgresql: name: agent-postgresql jdbcUrl: jdbc:postgresql://agent-postgresql:5432/provider @@ -275,10 +283,19 @@ source: database: provider username: provider_user password: **** + connector: provider-connector controlplane: endpoints: + control: + port: 8083 + path: "/control" + protocol: + port: 8084 + path: "/api/v1/dsp" management: - authKey: **** + port: 8081 + path: "/management" + authKey: *** bdrs: server: url: https://bpn-did-resolution-service.int.demo.catena-x.net/api/directory @@ -310,24 +327,26 @@ source: enabled: true configs: dataspace.ttl: |- - ################################################ - # Catena-X Agent Bootstrap - ################################################ + ################################################################# + # Catena-X Agent Bootstrap Graph in TTL/RDF/OWL FORMAT + ################################################################# @prefix : . - @prefix cx: . @prefix cx-common: . + @prefix owl: . @prefix rdf: . + @prefix xml: . + @prefix json: . @prefix xsd: . + @prefix rdfs: . @prefix bpnl: . + @prefix bpns: . @base . + + bpnl:BPNL000000000001 cx-common:id "BPNL000000000001"^^xsd:string; + cx-common:hasConnector . - bpnl:BPNL000000000001 cx:hasBusinessPartnerNumber "BPNL000000000001"^^xsd:string; - cx:hasConnector ; - cx-common:hasConnector . - - bpnl:BPNL0000000005VV cx:hasBusinessPartnerNumber "BPNL0000000005VV"^^xsd:string; - cx:hasConnector ; - cx-common:hasConnector . + bpnl:BPNL0000000005VV cx-common:id "BPNL0000000005VV"^^xsd:string; + cx-common:hasConnector . agent: synchronization: 360000 connectors: @@ -340,11 +359,13 @@ destination: #### App Consumer 4 Datspace Connector Manifest +Deployed as "consumer-connector" + ```yaml project: project-knowledge source: repoURL: 'https://eclipse-tractusx.github.io/charts/dev' - targetRevision: 0.7.0 + targetRevision: 0.7.3 plugin: env: - name: HELM_VALUES @@ -392,8 +413,16 @@ source: image: pullPolicy: Always endpoints: + control: + port: 8083 + path: "/control" + protocol: + port: 8084 + path: "/api/v1/dsp" management: - authKey: **** + port: 8081 + path: "/management" + authKey: *** bdrs: server: url: https://bpn-did-resolution-service.int.demo.catena-x.net/api/directory @@ -409,21 +438,12 @@ source: # -- Enables TLS on the ingress resource tls: enabled: true - env: - EDC_DATAPLANE_SELECTOR_AGENTPLANE_URL: http://agent-plane-consumer:8087/api/signaling/v1/dataflows - EDC_DATAPLANE_SELECTOR_AGENTPLANE_SOURCETYPES: cx-common:Protocol?w3c:http:SPARQL,cx-common:Protocol?w3c:http:SKILL - EDC_DATAPLANE_SELECTOR_AGENTPLANE_TRANSFERTYPES: HttpData-PULL - EDC_DATAPLANE_SELECTOR_AGENTPLANE_DESTINATIONTYPES: HttpProxy - EDC_DATAPLANE_SELECTOR_AGENTPLANE_PROPERTIES: '{ "publicApiUrl": "https://consumer-agent.stable.demo.catena-x.net/api/public/" }' - EDC_IAM_TRUSTED-ISSUER_0-ISSUER_ID: did:web:dim-static-prod.dis-cloud-prod.cfapps.eu10-004.hana.ondemand.com:dim-hosted:2f45795c-d6cc-4038-96c9-63cedc0cd266:holder-iatp dataplane: token: signer: privatekey_alias: consumer-key verifier: publickey_alias: consumer-cert - env: - EDC_IAM_TRUSTED-ISSUER_0-ISSUER_ID: did:web:dim-static-prod.dis-cloud-prod.cfapps.eu10-004.hana.ondemand.com:dim-hosted:2f45795c-d6cc-4038-96c9-63cedc0cd266:holder-iatp chart: tractusx-connector destination: server: 'https://kubernetes.default.svc' @@ -432,11 +452,13 @@ destination: #### App Consumer 4 Agent Plane Manifest +Deployed as "consumer-agent-plane" + ```yaml project: project-knowledge source: repoURL: 'https://eclipse-tractusx.github.io/charts/dev' - targetRevision: 1.12.19 + targetRevision: 1.13.22 plugin: env: - name: HELM_VALUES @@ -478,10 +500,20 @@ source: database: consumer username: consumer_user password: **** + connector: consumer-connector controlplane: endpoints: management: - authKey: **** + control: + port: 8083 + path: "/control" + protocol: + port: 8084 + path: "/api/v1/dsp" + management: + port: 8081 + path: "/management" + authKey: *** bdrs: server: url: https://bpn-did-resolution-service.int.demo.catena-x.net/api/directory @@ -505,7 +537,7 @@ source: auth: {} ingresses: - enabled: true - hostname: "consumer-agent.stable.demo.catena-x.net" + hostname: "agent-consumer-dp.stable.demo.catena-x.net" endpoints: - public - default @@ -513,36 +545,130 @@ source: enabled: true configs: dataspace.ttl: |- - ################################################ - # Catena-X Agent Bootstrap - ################################################ + ################################################################# + # Catena-X Agent Bootstrap Graph in TTL/RDF/OWL FORMAT + ################################################################# @prefix : . - @prefix cx: . @prefix cx-common: . + @prefix owl: . @prefix rdf: . + @prefix xml: . + @prefix json: . @prefix xsd: . + @prefix rdfs: . @prefix bpnl: . + @prefix bpns: . @base . + + bpnl:BPNL000000000001 cx-common:id "BPNL000000000001"^^xsd:string; + cx-common:hasConnector . - bpnl:BPNL000000000001 cx:hasBusinessPartnerNumber "BPNL000000000001"^^xsd:string; - cx:hasConnector ; - cx-common:hasConnector . - - bpnl:BPNL0000000005VV cx:hasBusinessPartnerNumber "BPNL0000000005VV"^^xsd:string; - cx:hasConnector ; - cx-common:hasConnector . + bpnl:BPNL0000000005VV cx-common:id "BPNL0000000005VV"^^xsd:string; + cx-common:hasConnector . agent: synchronization: 360000 connectors: BPNL000000000001: https://agent-provider-cp.stable.demo-catena-x.net BPNL0000000005VV: https://agent-consumer-cp.stable.demo-catena-x.net + matchmaking: https://consumer-agent.stable.demo-catena-x.net chart: agent-plane destination: server: 'https://kubernetes.default.svc' namespace: product-knowledge ``` -### 3. Deploy App Provider 1 Provisioning Agent +### 3. Deploy Matchmaking Agent + +#### App Consumer 4 Matchmaking Agent Manifest + +Deployed as "consumer-agent" + +```yaml +project: project-knowledge +source: + repoURL: 'https://eclipse-tractusx.github.io/charts/dev' + targetRevision: 1.13.22 + plugin: + env: + - name: HELM_VALUES + value: | + participant: + id: BPNL0000000005VV + nameOverride: agent-plane-consumer + fullnameOverride: agent-plane-consumer + connector: consumer-connector + controlplane: + endpoints: + management: + control: + port: 8083 + path: "/control" + protocol: + port: 8084 + path: "/api/v1/dsp" + management: + port: 8081 + path: "/management" + authKey: *** + bdrs: + server: + url: https://bpn-did-resolution-service.int.demo.catena-x.net/api/directory + ingresses: + - enabled: true + # -- The hostname to be used to precisely map incoming traffic onto the underlying network service + hostname: "agent-consumer-cp.stable.demo.catena-x.net" + # -- EDC endpoints exposed by this ingress resource + endpoints: + - protocol + - management + - api + # -- Enables TLS on the ingress resource + tls: + enabled: true + ingresses: + - enabled: true + hostname: "consumer-agent.stable.demo.catena-x.net" + endpoints: + - default + tls: + enabled: true + certManager: + clusterIssuer: *clusterIssuer + configs: + # -- An example of an empty graph in ttl syntax + dataspace.ttl: | + ################################################################# + # Catena-X Agent Bootstrap Graph in TTL/RDF/OWL FORMAT + ################################################################# + @prefix : . + @prefix cx-common: . + @prefix owl: . + @prefix rdf: . + @prefix xml: . + @prefix json: . + @prefix xsd: . + @prefix rdfs: . + @prefix bpnl: . + @prefix bpns: . + @base . + + bpnl:BPNL000000000001 cx-common:id "BPNL000000000001"^^xsd:string; + cx-common:hasConnector . + + bpnl:BPNL0000000005VV cx-common:id "BPNL0000000005VV"^^xsd:string; + cx-common:hasConnector . + agent: + synchronization: 360000 + connectors: + BPNL000000000001: https://agent-provider-cp.stable.demo-catena-x.net + BPNL0000000005VV: https://agent-consumer-cp.stable.demo-catena-x.net + chart: matchmaking-agent +destination: + server: 'https://kubernetes.default.svc' + namespace: product-knowledge +``` + +### 4. Deploy App Provider 1 Provisioning Agent Using the following application has been installed. @@ -553,7 +679,7 @@ Therefore, some of the following settings are specific to stable and will not be project: project-knowledge source: repoURL: 'https://eclipse-tractusx.github.io/charts/dev' - targetRevision: 1.12.19 + targetRevision: 1.13.22 plugin: env: - name: HELM_VALUES @@ -618,7 +744,7 @@ destination: namespace: product-knowledge ``` -### 4. Deploy App Provider 1 Remoting Agent +### 5. Deploy App Provider 1 Remoting Agent Using the following application has been installed. @@ -628,7 +754,7 @@ For simplicity, the remoting agent exposes a simply public API as a graph. project: project-knowledge source: repoURL: 'https://eclipse-tractusx.github.io/charts/dev' - targetRevision: 1.12.19 + targetRevision: 1.13.22 plugin: env: - name: HELM_VALUES @@ -699,9 +825,48 @@ destination: namespace: product-knowledge ``` +### 6. Deploy App Provider 1 AAS Bridge + +Using the following application has been installed. + +For simplicity, the aas bridge uses builtin-persistence. + +```yaml +project: project-knowledge +source: + repoURL: 'https://eclipse-tractusx.github.io/charts/dev' + targetRevision: 1.13.7 + plugin: + env: + - name: HELM_VALUES + value: | + image: + pullPolicy: Always + aas: + persistence: + # -- The default sparql server is embedded + sparql: http://sparql.local + endpoints: + default: + path: "/" + ingresses: + - enabled: true + hostname: "aas-bridge.stable.demo.catena-x.net" + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" + endpoints: + - default + tls: + enabled: true + chart: aas-bridge +destination: + server: 'https://kubernetes.default.svc' + namespace: product-knowledge +``` + ### 5. Perform Smoke Tests -This KIT provides a [Postman collection](https://www.postman.com/catena-x/workspace/catena-x-knowledge-agents/folder/2757771-04658655-9019-4f1c-9de0-eeaf6245b9b6?action=share&source=copy-link&creator=2757771&ctx=documentation) and a corresponding [environment](https://www.postman.com/catena-x/workspace/catena-x-knowledge-agents/environment/2757771-31115ff3-61d7-4ad6-8310-1e50290a1c3a?action=share&creator=2757771&active-environment=2757771-3a7489c5-7540-470b-8e44-04610511d9a9) +This KIT provides a [Postman collection/folder](https://www.postman.com/catena-x/workspace/catena-x-knowledge-agents/folder/2757771-3534e62a-e7c3-4f0b-9aad-75afc650d92e?action=share&source=copy-link&creator=2757771&ctx=documentation) and a corresponding [environment](https://www.postman.com/catena-x/workspace/catena-x-knowledge-agents/environment/2757771-31115ff3-61d7-4ad6-8310-1e50290a1c3a?action=share&creator=2757771&active-environment=2757771-3a7489c5-7540-470b-8e44-04610511d9a9) It consists of the following steps: @@ -714,6 +879,7 @@ It consists of the following steps: * Create Data Graph Asset (Provider) * Create Function Graph Asset (Provider) * Show Own Catalogue (Provider) +* Query AAS Bridge (Provider) * Show Remote Catalogue (Consumer) * Query Data Graph Asset (Consumer) * Query Function Graph Asset (Consumer) diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/ka_conformity_scripts.postman_collection.json b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/ka_conformity_scripts.postman_collection.json index f0767796987..4b7210b2f36 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/ka_conformity_scripts.postman_collection.json +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/ka_conformity_scripts.postman_collection.json @@ -1,7 +1,7 @@ { "info": { "_postman_id": "0ad1b7a6-734c-4289-9221-667fc56a21da", - "name": "KA Conformity Assessment Scripts (R24.05)", + "name": "KA Conformity Assessment Scripts (R24.08)", "description": "(C) 2021,2023 Contributors to the Eclipse Foundation\n\nSPDX-LICENSE-IDENTIFIER: CC-BY-4.0", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "2757771", @@ -232,7 +232,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"GraphAsset?cab=Conforming&mode=open\",\n \"properties\": {\n \"cx-common:name\": \"Open Conforming Asset.\",\n \"cx-common:description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"cx-common:version\": \"1.12.19\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"dct:type\": \"cx-taxo:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {},\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=open\",\n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", + "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"GraphAsset?cab=Conforming&mode=open\",\n \"properties\": {\n \"cx-common:name\": \"Open Conforming Asset.\",\n \"cx-common:description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"cx-common:version\": \"1.13.22\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"dct:type\": \"cx-taxo:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {},\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=open\",\n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", "options": { "raw": { "language": "json" @@ -281,7 +281,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"GraphAsset?cab=Conforming&mode=closed\",\n \"properties\": {\n \"cx-common:name\": \"Closed Conforming Asset.\",\n \"cx-common:description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"cx-common:version\": \"1.12.19\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=closed\",\n \"dct:type\": \"cx-taxo:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {},\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=closed\",\n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", + "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"GraphAsset?cab=Conforming&mode=closed\",\n \"properties\": {\n \"cx-common:name\": \"Closed Conforming Asset.\",\n \"cx-common:description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"cx-common:version\": \"1.13.22\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=closed\",\n \"dct:type\": \"cx-taxo:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {},\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=closed\",\n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", "options": { "raw": { "language": "json" @@ -330,7 +330,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"GraphAsset?cab=Conforming&mode=unfederated\",\n \"properties\": {\n \"cx-common:name\": \"Unfederated Conforming Asset.\",\n \"cx-common:description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"cx-common:version\": \"1.12.19\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Graph&mode=open\",\n \"dct:type\": \"cx-taxo:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"false^^xsd:boolean\"\n },\n \"privateProperties\": {},\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=unfederated\",\n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", + "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"GraphAsset?cab=Conforming&mode=unfederated\",\n \"properties\": {\n \"cx-common:name\": \"Unfederated Conforming Asset.\",\n \"cx-common:description\": \"A graph asset/offering hosting a conforming agent for testing and conformity checking.\",\n \"cx-common:version\": \"1.13.22\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Graph&mode=open\",\n \"dct:type\": \"cx-taxo:GraphAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"sh:shapesGraph\": \"@prefix : .\\n\",\n \"cx-common:isFederated\": \"false^^xsd:boolean\"\n },\n \"privateProperties\": {},\n \"dataAddress\": {\n \"id\": \"GraphAsset?cab=Conforming&mode=unfederated\",\n \"@type\": \"DataAddress\",\n \"baseUrl\": \"{{cabConformingAgent}}/bind\",\n \"type\": \"cx-common:Protocol?w3c:http:SPARQL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", "options": { "raw": { "language": "json" @@ -453,7 +453,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"SkillAsset?cab=Conforming&mode=open\",\n \"properties\": {\n \"cx-common:name\": \"Open Skill\",\n \"cx-common:description\": \"A conformity assessment skill.\",\n \"cx-common:version\": \"1.12.19\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"dct:type\": \"cx-taxo:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=all\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\": \"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n },\n \"dataAddress\": {\n \"id\": \"SkillAsset?cab=Conforming&mode=open\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", + "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"SkillAsset?cab=Conforming&mode=open\",\n \"properties\": {\n \"cx-common:name\": \"Open Skill\",\n \"cx-common:description\": \"A conformity assessment skill.\",\n \"cx-common:version\": \"1.13.22\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"dct:type\": \"cx-taxo:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=all\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\": \"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n },\n \"dataAddress\": {\n \"id\": \"SkillAsset?cab=Conforming&mode=open\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", "options": { "raw": { "language": "json" @@ -577,7 +577,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"SkillAsset?cab=Conforming&mode=closed\",\n \"properties\": {\n \"cx-common:name\": \"Closed Skill\",\n \"cx-common:description\": \"A conformity assessment skill.\",\n \"cx-common:version\": \"1.12.19\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=closed\",\n \"dct:type\": \"cx-taxo:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=all\",\n \"cx-common:isFederated\": \"false^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\": \"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n },\n \"dataAddress\": {\n \"id\": \"SkillAsset?cab=Conforming&mode=closed\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", + "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"SkillAsset?cab=Conforming&mode=closed\",\n \"properties\": {\n \"cx-common:name\": \"Closed Skill\",\n \"cx-common:description\": \"A conformity assessment skill.\",\n \"cx-common:version\": \"1.13.22\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=closed\",\n \"dct:type\": \"cx-taxo:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=all\",\n \"cx-common:isFederated\": \"false^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\": \"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n },\n \"dataAddress\": {\n \"id\": \"SkillAsset?cab=Conforming&mode=closed\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", "options": { "raw": { "language": "json" @@ -701,7 +701,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"SkillAsset?cab=Conforming&mode=provider\",\n \"properties\": {\n \"cx-common:name\": \"Provider-Forced Skill\",\n \"cx-common:description\": \"A conformity assessment skill.\",\n \"cx-common:version\": \"1.12.19\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"dct:type\": \"cx-taxo:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=provider\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\": \"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n },\n \"dataAddress\": {\n \"id\": \"SkillAsset?cab=Conforming&mode=provider\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", + "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"SkillAsset?cab=Conforming&mode=provider\",\n \"properties\": {\n \"cx-common:name\": \"Provider-Forced Skill\",\n \"cx-common:description\": \"A conformity assessment skill.\",\n \"cx-common:version\": \"1.13.22\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"dct:type\": \"cx-taxo:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=provider\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\": \"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n },\n \"dataAddress\": {\n \"id\": \"SkillAsset?cab=Conforming&mode=provider\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", "options": { "raw": { "language": "json" @@ -825,7 +825,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"SkillAsset?cab=Conforming&mode=consumer\",\n \"properties\": {\n \"cx-common:name\": \"Consumer-Forced Skill\",\n \"cx-common:description\": \"A conformity assessment skill.\",\n \"cx-common:version\": \"1.12.19\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"dct:type\": \"cx-taxo:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=consumer\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\": \"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n },\n \"dataAddress\": {\n \"id\": \"SkillAsset?cab=Conforming&mode=consumer\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", + "raw": "{\n \"@context\": {\n \"@vocab\": \"https://w3id.org/edc/v0.0.1/ns/\",\n \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n \"cx-common\": \"https://w3id.org/catenax/ontology/common#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n \"sh\": \"http://www.w3.org/ns/shacl#\",\n \"cs-taxo\": \"https://w3id.org/catenax/taxonomy#\",\n \"dct\": \"https://purl.org/dc/terms/\"\n },\n \"@id\": \"SkillAsset?cab=Conforming&mode=consumer\",\n \"properties\": {\n \"cx-common:name\": \"Consumer-Forced Skill\",\n \"cx-common:description\": \"A conformity assessment skill.\",\n \"cx-common:version\": \"1.13.22\",\n \"cx-common:contenttype\": \"application/json, application/xml\",\n \"cx-common:publishedUnderContract\": \"Contract?cab=Asset&mode=open\",\n \"dct:type\": \"cx-taxo:SkillAsset\",\n \"rdfs:isDefinedBy\": \"\",\n \"cx-common:implementsProtocol\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"cx-common:distributionMode\": \"cx-common:SkillDistribution?run=consumer\",\n \"cx-common:isFederated\": \"true^^xsd:boolean\"\n },\n \"privateProperties\": {\n \"cx-common:query\": \"# Sample Skill accessing a graph\\n\\nSELECT ?subject ?predicate ?object WHERE { \\n SERVICE {\\n GRAPH { \\n ?subject ?predicate ?object. \\n }\\n } \\n}\"\n },\n \"dataAddress\": {\n \"id\": \"SkillAsset?cab=Conforming&mode=consumer\",\n \"@type\": \"DataAddress\",\n \"type\": \"cx-common:Protocol?w3c:http:SKILL\",\n \"proxyPath\": \"false\",\n \"proxyMethod\": \"true\",\n \"proxyQueryParams\": \"true\",\n \"proxyBody\": \"true\"\n }\n}", "options": { "raw": { "language": "json" @@ -3304,6 +3304,402 @@ ] } ] + }, + { + "name": "0303_PROVIDER_AAS", + "item": [ + { + "name": "030301_PROVIDER_AAS_BRIDGE", + "item": [ + { + "name": "030301_AAS_DESCRIPTION", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"AAS 3.0 description was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " res = pm.response.json();", + "\t\tpm.expect(res).to.have.property('profiles');", + "\t\tpm.expect(res.profiles).to.have.length.gte(1);", + "\t\taasProfiles=res.profiles.filter(function(profile) {", + "\t\t\treturn profile.includes(\"AssetAdministrationShellRepository\");", + "\t\t});", + "\t\tpm.expect(aasProfiles.length).to.be.eq(1);", + "\t\tsubmodelProfiles=res.profiles.filter(function(profile) {", + "\t\t\treturn profile.includes(\"SubmodelRepository\");", + "\t\t});", + " pm.expect(submodelProfiles.length).to.be.eq(1);", + "});", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "protocolProfileBehavior": { + "disabledSystemHeaders": { + "accept": true, + "user-agent": true, + "accept-encoding": true, + "connection": true + } + }, + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [], + "url": { + "raw": "{{providerAasBridge}}/api/v3.0/description", + "host": [ + "{{providerAasBridge}}" + ], + "path": [ + "api", + "v3.0", + "description" + ] + } + }, + "response": [] + }, + { + "name": "030302_AAS_ALL_SHELLS", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"AAS 3.0 shells was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " res = pm.response.json();", + "\tpm.expect(res).to.have.property('result');", + "\tpm.expect(res.result).to.have.length.gte(1);", + "\tres.result.forEach(function(shell) {", + " pm.expect(shell).to.have.property(\"id\");", + " pm.expect(shell).to.have.property(\"idShort\");", + " pm.expect(shell).to.have.property(\"assetInformation\");", + " pm.expect(shell.assetInformation).to.have.property(\"globalAssetId\");", + " pm.expect(shell).to.have.property(\"submodels\");", + " pm.expect(shell.submodels).to.have.length.gte(1);", + " shell.submodels.forEach(function(submodel) {", + " pm.expect(submodel).to.have.property(\"keys\");", + " pm.expect(submodel.keys).to.have.length.gte(1);", + " });", + " });", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{providerAasBridge}}/api/v3.0/shells", + "host": [ + "{{providerAasBridge}}" + ], + "path": [ + "api", + "v3.0", + "shells" + ] + } + }, + "response": [] + }, + { + "name": "030303_AAS_ALL_SUBMODELS", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"AAS 3.0 submodels was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " res = pm.response.json();", + "\tpm.expect(res).to.have.property('result');", + "\tpm.expect(res.result).to.have.length.gte(1);", + "\tres.result.forEach(function(submodel) {", + " pm.expect(submodel).to.have.property(\"id\");", + " pm.expect(submodel).to.have.property(\"idShort\");", + " pm.expect(submodel).to.have.property(\"semanticId\");", + " pm.expect(submodel.semanticId).to.have.property(\"keys\");", + " pm.expect(submodel.semanticId.keys).to.have.length.gte(1);", + " pm.expect(submodel).to.have.property(\"submodelElements\");", + " pm.expect(submodel.submodelElements).to.have.length.gte(1);", + " submodel.submodelElements.forEach(function(submodelElement) {", + " pm.expect(submodelElement).to.have.property(\"idShort\");", + " pm.expect(submodelElement).to.have.property(\"value\");", + " });", + " });", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{providerAasBridge}}/api/v3.0/submodels?content=value&level=deep", + "host": [ + "{{providerAasBridge}}" + ], + "path": [ + "api", + "v3.0", + "submodels" + ], + "query": [ + { + "key": "content", + "value": "value" + }, + { + "key": "level", + "value": "deep" + } + ] + } + }, + "response": [] + }, + { + "name": "030304_ONE_SHELL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"AAS 3.0 specific shell was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " shell = pm.response.json();", + " pm.expect(shell).to.have.property(\"id\");", + " pm.expect(shell).to.have.property(\"idShort\");", + " pm.expect(shell).to.have.property(\"assetInformation\");", + " pm.expect(shell.assetInformation).to.have.property(\"globalAssetId\");", + " pm.expect(shell).to.have.property(\"submodels\");", + " pm.expect(shell.submodels).to.have.length.gte(1);", + " shell.submodels.forEach(function(submodel) {", + " pm.expect(submodel).to.have.property(\"keys\");", + " pm.expect(submodel.keys).to.have.length.gte(1);", + " });", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{providerAasBridge}}/api/v3.0/shells/:shellid", + "host": [ + "{{providerAasBridge}}" + ], + "path": [ + "api", + "v3.0", + "shells", + ":shellid" + ], + "variable": [ + { + "key": "shellid", + "value": "dHJhY2VhYmlsaXR5L3Vybjp1dWlkOmY1ZWZiZjQ1LTdkODQtNDQ0Mi1iM2I4LTA1Y2YxYzVjNWEwYg==" + } + ] + } + }, + "response": [] + }, + { + "name": "030305_NOTEXISTS_SHELL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"AAS 3.0 not existant shell wasfailure\", function () {", + " pm.expect(pm.response.code).oneOf([400,500]);", + " message = pm.response.json();", + "\tpm.expect(message).to.have.property(\"messages\");", + "\tpm.expect(message.messages).to.have.length.gte(1);", + "\tmessage.messages.forEach(function(message) {", + "\t\t\tpm.expect(message).to.have.property(\"messageType\");", + "\t\t\tpm.expect(message).to.have.property(\"text\");", + "\t\t\tpm.expect(message).to.have.property(\"code\");", + "\t\t\tpm.expect(message).to.have.property(\"timestamp\");", + "\t});", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{providerAasBridge}}/api/v3.0/shells/:shellid", + "host": [ + "{{providerAasBridge}}" + ], + "path": [ + "api", + "v3.0", + "shells", + ":shellid" + ], + "variable": [ + { + "key": "shellid", + "value": "dHJhY2VhYmlsaXR5L3Vybjp1dWlkOmY1ZWZiZjQ1LTdkODQtNDQ0Mi1iM2I4LTA1Y2YxYzVjNWEwYw==" + } + ] + } + }, + "response": [] + }, + { + "name": "030306_ONE_SUBMODEL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"AAS 3.0 specific submodel was successful\", function () {", + " pm.expect(pm.response.code).oneOf([200]);", + " submodel = pm.response.json();", + "\tpm.expect(submodel).to.have.property(\"id\");", + "\tpm.expect(submodel).to.have.property(\"idShort\");", + "\tpm.expect(submodel).to.have.property(\"semanticId\");", + "\tpm.expect(submodel.semanticId).to.have.property(\"keys\");", + "\tpm.expect(submodel.semanticId.keys).to.have.length.gte(1);", + "\tpm.expect(submodel).to.have.property(\"submodelElements\");", + "\tpm.expect(submodel.submodelElements).to.have.length.gte(1);", + "\tsubmodel.submodelElements.forEach(function(submodelElement) {", + "\t\t\tpm.expect(submodelElement).to.have.property(\"idShort\");", + "\t\t\tpm.expect(submodelElement).to.have.property(\"value\");", + "\t});", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{providerAasBridge}}/api/v3.0/submodels/:submodelIdentifier?level=deep", + "host": [ + "{{providerAasBridge}}" + ], + "path": [ + "api", + "v3.0", + "submodels", + ":submodelIdentifier" + ], + "query": [ + { + "key": "level", + "value": "deep" + }, + { + "key": "content", + "value": "value", + "disabled": true + } + ], + "variable": [ + { + "key": "submodelIdentifier", + "value": "dHJhY2VhYmlsaXR5L3VybjpiYW1tOmlvLmNhdGVuYXgucGFydF9hc19wbGFubmVkOjEuMC4xI1BhcnRBc1BsYW5uZWQvdXJuOnV1aWQ6ZjVlZmJmNDUtN2Q4NC00NDQyLWIzYjgtMDVjZjFjNWM1YTBi" + } + ] + } + }, + "response": [] + }, + { + "name": "030307_NOTEXISTS_SUBMODEL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"AAS 3.0 not existant submodel wasfailure\", function () {", + " pm.expect(pm.response.code).oneOf([400,500]);", + " message = pm.response.json();", + "\tpm.expect(message).to.have.property(\"messages\");", + "\tpm.expect(message.messages).to.have.length.gte(1);", + "\tmessage.messages.forEach(function(message) {", + "\t\t\tpm.expect(message).to.have.property(\"messageType\");", + "\t\t\tpm.expect(message).to.have.property(\"text\");", + "\t\t\tpm.expect(message).to.have.property(\"code\");", + "\t\t\tpm.expect(message).to.have.property(\"timestamp\");", + "\t});", + "});" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{providerAasBridge}}/api/v3.0/submodels/:submodelIdentifier?level=deep", + "host": [ + "{{providerAasBridge}}" + ], + "path": [ + "api", + "v3.0", + "submodels", + ":submodelIdentifier" + ], + "query": [ + { + "key": "level", + "value": "deep" + }, + { + "key": "content", + "value": "value", + "disabled": true + } + ], + "variable": [ + { + "key": "submodelIdentifier", + "value": "dHJhY2VhYmlsaXR5L3VybjpiYW1tOmlvLmNhdGVuYXgucGFydF9zaXRlX2luZm9ybWF0aW9uX2FzX3BsYW5uZWQ6MS4wLjAjUGFydFNpdGVJbmZvcm1hdGlvbkFzUGxhbm5lZC91cm46dXVpZDplNWM5NmFiNS04OTZhLTQ4MmMtODc2MS1lZmQ3NDc3N2NhOTc=" + } + ] + } + }, + "response": [] + } + ] + } + ] } ] }, diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/policy.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/policy.md index 8ed4e9a827f..b6ae6e3c0c1 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/policy.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/policy.md @@ -117,7 +117,7 @@ A result from would look like this }, "version": { "type": "literal", - "value": "1.12.19" + "value": "1.13.22" } }, { diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/provider.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/provider.md index 426e37fd9f9..e7d76772920 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/provider.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/provider.md @@ -50,7 +50,7 @@ Add a helm dependency to your umbrella/infrastructure Chart.yaml (this example u ```yaml - name: provisioning-agent repository: https://eclipse-tractusx.github.io/charts/dev - version: 1.12.19 + version: 1.13.22 alias: my-provider-agent ``` @@ -317,7 +317,7 @@ Add a helm dependency to your umbrella/infrastructure Chart.yaml (this example u ```yaml - name: remoting-agent repository: https://eclipse-tractusx.github.io/charts/dev - version: 1.12.19 + version: 1.13.22 alias: my-remoting-agent ``` @@ -1112,7 +1112,7 @@ curl --location --globoff 'https://my-connector-control.domain/management/v3/ass "cx-common:name": "Lifetime Prognosis Service for Gearboxes", "cx-common:description": "A sample graph asset/offering referring to a specific prognosis resource.", "cx-common:description@de": "Ein Beispielasset für eine Prognosefunktion.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?supplier=Graph", "dc:type": "cx-taxo:GraphAsset", @@ -1158,7 +1158,7 @@ curl --location --globoff 'https://my-connector-control.domain/management/v3/ass "cx-common:name": "Health Prognosis Service for Gearboxes", "cx-common:description": "A second sample graph asset/offering referring to a specific prognosis resource.", "cx-common:description@de": "Ein weiteres Beispielasset für eine Prognosefunktion.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?supplier=Graph", "dc:type": "cx-taxo:GraphAsset", diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/testbed.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/testbed.md index e42b179cd09..8c9030bd313 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/testbed.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/operation-view/testbed.md @@ -57,6 +57,8 @@ The scripts are organised as follows: * 030101_PROVIDER_DATA_SPARQL - scripts to be run against Data Provider Agents * 0302_PROVIDER_FUNCTION - scripts to be run at Function Provider CAPs * 030201_PROVIDER_FUNCTION_SPARQL - scripts to be run against Function Provider Agents + * 0303_PROVIDER_AAS - scripts to be run at AAS Provider CAPs + * 030301_PROVIDER_AAS_API - scripts to be run against AAS Provider Bridge * 04_CONSUMER - scripts to be run against Consumer CAPs * 0401_CONSUMER_APPLICATION - scripts to be run against a KA-enabled Application * 040101_CONSUMER_APPLICATION_SPARQL - scripts to be run against a SPARQL-speaking Application @@ -184,7 +186,7 @@ The CAB may use the following Graph Asset Descriptions (referring to the contrac "properties": { "cx-common:name": "Open Conforming Asset.", "cx-common:description": "A graph asset/offering hosting a conforming agent for testing and conformity checking.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", "dct:type": "cx-taxo:GraphAsset", @@ -225,7 +227,7 @@ The CAB may use the following Graph Asset Descriptions (referring to the contrac "properties": { "cx-common:name": "Closed Conforming Asset.", "cx-common:description": "A graph asset/offering hosting a conforming agent for testing and conformity checking.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=closed", "dct:type": "cx-taxo:GraphAsset", @@ -266,7 +268,7 @@ The CAB may use the following Graph Asset Descriptions (referring to the contrac "properties": { "cx-common:name": "Unfederated Conforming Asset.", "cx-common:description": "A graph asset/offering hosting a conforming agent for testing and conformity checking.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?cab=Graph&mode=open", "dct:type": "cx-taxo:GraphAsset", @@ -311,7 +313,7 @@ The CAB may use the following Skill Asset Descriptions (referring to the contrac "properties": { "cx-common:name": "Open Skill", "cx-common:description": "A conformity assessment skill.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", "dct:type": "cx-taxo:SkillAsset", @@ -353,7 +355,7 @@ The CAB may use the following Skill Asset Descriptions (referring to the contrac "properties": { "cx-common:name": "Closed Skill", "cx-common:description": "A conformity assessment skill.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=closed", "dct:type": "cx-taxo:SkillAsset", @@ -395,7 +397,7 @@ The CAB may use the following Skill Asset Descriptions (referring to the contrac "properties": { "cx-common:name": "Provider-Forced Skill", "cx-common:description": "A conformity assessment skill.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", "dct:type": "cx-taxo:SkillAsset", @@ -437,7 +439,7 @@ The CAB may use the following Skill Asset Descriptions (referring to the contrac "properties": { "cx-common:name": "Consumer-Forced Skill", "cx-common:description": "A conformity assessment skill.", - "cx-common:version": "1.12.19", + "cx-common:version": "1.13.22", "cx-common:contenttype": "application/json, application/xml", "cx-common:publishedUnderContract": "Contract?cab=Asset&mode=open", "dct:type": "cx-taxo:SkillAsset", diff --git a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/page_changelog.md b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/page_changelog.md index af23894514e..da556efa0ea 100644 --- a/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/page_changelog.md +++ b/docs-kits_versioned_docs/version-24.08/kits/knowledge-agents/page_changelog.md @@ -32,6 +32,16 @@ sidebar_position: 1 All notable changes to the (Knowledge) Agents KIT will be documented in this file. +## [1.2.0] - 2024-07-29 + +### Added + +- AAS Bridge Released + +### Changed + +- References to 24.08 (1.31.22/1.13.7) + ## [1.1.0] - 2024-05-13 ### Added