Skip to content

Reference Implementations of CX-0084 (Federated Queries In Data Spaces)

License

Apache-2.0, CC-BY-4.0 licenses found

Licenses found

Apache-2.0
LICENSE
CC-BY-4.0
LICENSE_non-code
Notifications You must be signed in to change notification settings

eclipse-tractusx/knowledge-agents

Tractus-X Knowledge Agents Reference Implementations (KA-RI)

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

Tractus-X Knowledge Agents Reference Implementations (KA-RI) is a product of the Catena-X Knowledge Agents Kit (about to move to: Tractus-X Knowledge Agents Kit) implementing the "binding" modules of the CX-0084 standard (Federated Queries in Dataspaces).

About the Project

This repository provides FOSS implementations for so-called Agents.

An "Agent" is a (re- as well as pro-active) component which understands, partially elaborates and possibly delegates declarative scripts or queries (the so-called "Skills") over individual data and service assets ("Knowledge Graphs") of the dataspace.

Agents speak Semantic Web Based dataspace protocols (such as SPARQL) which are negotiated and transferred by the Tractus-X Knowledge Agent Extensions for the Eclipse Dataspace Components (KA-EDC). Binding Agents translate these protocols to your backend data storage or API.

We provide several of agent implementations in this product.

  • Matchmaking Agent (KA-MATCH upcoming) An agent implementation is needed by any Agent-Enabled dataspace participant to reason about the Dataspace/EDC (and hence: other Matchmaking Agents). It is also able to delegate work on sub-graphs/asset to tenant-internal agents (Binding Agents) providing actual data and functions. For Agent-Enabled dataspace consumers, deploying the Matchmaking Agent alongside an Agent-Enabled EDC is sufficient.
  • Binding Agents are needed by any Agent-Enabled dataspace provider in order to link the Dataspace/Protocol layer to the actual Data and Functional Resources. Binding (sometimes: Bridging) is a technology which rather translates between protocols rather than translating data (Mapping).
  • Conforming Agent (KA-CONF) An agent implementation which may play any role (Matchmaking Agent, Binding Agent, EDC Transfer) in order to test the conformity of all other parts of the architecture/standard.

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 agent 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/conforming-agent:1.14.24-SNAPSHOT --name ka
kind load docker-image docker.io/tractusx/matchmaking-agent:1.14.24-SNAPSHOT --name ka
kind load docker-image docker.io/tractusx/provisioning-agent:1.14.24-SNAPSHOT --name ka
kind load docker-image docker.io/tractusx/remoting-agent:1.14.24-SNAPSHOT --name ka
# run container test
ct install --charts charts/conforming-agent 
ct install --charts charts/matchmaking-agent  
ct install --charts charts/provisioning-agent
ct install --charts charts/remoting-agent 

Notice for Docker Images