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).
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.
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).
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 can be done
See the individual agent documentations for more detailed deployment information
In order to run KA-RI applications via helm on your local machine, please make sure the following preconditions are met.
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.13.21-SNAPSHOT --name ka
kind load docker-image docker.io/tractusx/matchmaking-agent:1.13.21-SNAPSHOT --name ka
kind load docker-image docker.io/tractusx/provisioning-agent:1.13.21-SNAPSHOT --name ka
kind load docker-image docker.io/tractusx/remoting-agent:1.13.21-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