Design

The integration between ROS and TypeDB is implemented with 2 classes, TypeDBInterface and ROSTypeDBInterface.

The TypeDBInterface class interacts with the typeDB database using the typedb python api, and it contains basic functionalities that are common for all applications, such as insert_database and match_database.

The ROSTypeDBInterface class is a ROS 2 LifeCycle Node, and it implements 2 ROS interfaces. A ROS service server ros_typedb_interface/query that is used to query the database, which uses the Query.srv service type. And the ROS topic ros_typedb_interface/events, where it publishes insert and delete events when data is inserted or deleted from the database with the query service.

Class diagram:

Overview: