Skip to content

eclipse-tractusx/knowledge-agents-aas-bridge

Tractus-X Knowledge Agents AAS Bridges (KA-AAS)

GitHub contributors GitHub Org's stars GitHub GitHub all releases Quality Gate Status

Tractus-X Knowledge Agents AAS Bridges (KA-AAS) is a product of the Catena-X Knowledge Agents Kit (about to move to: Tractus-X Knowledge Agents Kit). It implements bridging components between the Catena-X Association's CX-0084 (Federated Queries in Dataspaces) and Industrial Digitial Twin Association's AAS Part 1 & 2 (Asset Administration Sheel) standards.

About the Project

This repository provides FOSS implementations for so-called bridging components between 'Knowledge Agents' and 'Asset Administration Shells'.

According to CX-0084, an "Agent" is a component that allows to represent and query a backend system ('source') using Semantic Web protocols (such as SPARQL).

According to AAS Part 1 & 2, an "Asset Administration Shell" (Server, Registry) is a component that allows to represent and query a source using a predefined REST Api.

Both Knowledge Agents as well as AAS components are expected to be compatible to the Tractus-X EDC connector.

Currently we provide the following bridge components:

  • Knowledge Agents Sparql-To-AAS Bridge (KA-AAS-SPARQL) Implements an AAS server/AAS registry interface that is backed by a one or several agents. Using a templating approach, queries to the AAS API are translated into SPARQL queries. Changes in the (virtual) knowledge graph should be automatically reflected in changes to the resulting (virtual) AAS tree.

Included in this repository are ready-made Helm charts.

They can be installed from the Tractus-X Helm Repository (Stable Versions) or Tractus-X Helm Repository (Dev Versions).

Getting Started

Build

To compile, package and containerize the binary artifacts (includes running the unit tests)

./mvnw package -Pwith-docker-image

To publish the binary artifacts (environment variables GITHUB_ACTOR and GITHUB_TOKEN must be set)

./mvnw -s settings.xml publish

To update the DEPENDENCIES declarations

./mvnw org.eclipse.dash:license-tool-plugin:license-check 

Deployment

Deployment can be done

See the individual bridge documentations for more detailed deployment information

Setup using Helm/Kind

In order to run KA-RI applications via helm on your local machine, please make sure the following preconditions are met.

  • Have a local Kubernetes runtime ready. We've tested this setup with KinD, but other runtimes such as Minikube may work as well, we just haven't tested them. All following instructions will assume KinD.

For the most bare-bones installation of the dataspace, execute the following commands in a shell:

kind create cluster -n ka --config kind.config.yaml
# the next step is specific to KinD and will be different for other Kubernetes runtimes!
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
# wait until the ingress controller is ready
kubectl wait --namespace ingress-nginx \
  --for=condition=ready pod \
  --selector=app.kubernetes.io/component=controller \
  --timeout=90s
# transfer images
kind load docker-image docker.io/tractusx/aas-bridge:1.14.23-SNAPSHOT --name ka
# run container test
ct install --charts charts/aas-bridge

Notice for Docker Images