The aim of TKCat (Tailored Knowledge Catalog) is to facilitate the management of data from knowledge resources that are frequently used alone or together in research environments. In TKCat, knowledge resources are manipulated as modeled database (MDB) objects. These objects provide access to the data tables along with a general description of the resource and a detailed data model generated with ReDaMoR documenting the tables, their fields and their relationships. These MDB are then gathered in catalogs that can be easily explored and shared. TKCat provides tools to easily subset, filter and combine MDBs and create new catalogs suited for specific needs.
This package has been presented at the useR!2022 conference and here are the slides.
The TKCat R package is licensed under GPL-3.
install.packages("TKCat")
The following R packages available on CRAN are required:
And those are suggested:
pak::pkg_install("github::patzaw/TKCat")
Introduction to
TKCat
(vignette("TKCat")): the main guide. It shows how to create MDBs
(data tables, description and data model), how to explore, filter,
join and combine them, and how to manage them in local catalogs or in
a centralized ClickHouse catalog (chTKCat).
TKCat
end-to-end
(vignette("TKCat-EndToEnd")): a step-by-step walkthrough of a
complete deployment: setting up ClickHouse, preparing a few MDBs and
pushing them to the database, querying them, and configuring an MCP
server and its clients.
Querying a chTKCat instance with an AI assistant (MCP
server)
(vignette("TKCat-MCP")): how to run the TKCat MCP server, locally
(stdio) or as a remote service (HTTP), so that AI assistants such as
Claude can explore and query the MDBs of a chTKCat instance. It also
covers the available tools and security considerations.
Defining and using Requirements for Knowledge
Management
(vignette("TKCat-KMR-POK")): how to define shared requirements (KMR)
that MDBs can comply with, how to refer to them in MDBs, and how to
use KMR and MDBs together to retrieve pieces of knowledge (POK) in a
consistent way.
The dm package provides similar features but with different implementation choices. Here are the main differences: