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).
- See the Authors
- See the Changelog
- See the Code of Conduct
- See the Contribution Guidelines
- See the License
- See the Notice on 3rd Party Software
- See this Readme
- See the Security Notice
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).
- Provisioning Agent (KA-PROV) An agent implementation which binds typical SQL-based backend data sources to SPARQL.
- Remoting Agent (KA-RMT) An agent implementation which binds typical REST services to SPARQL.
- 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).
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
- via JAR libraries copied into your Java runtime
- via Docker images
- via Helm Charts (Stable Versions) or Helm Charts (Dev Versions)
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.
- 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