Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/patzaw/TKCat

This R package provides tools to manage a catalog of knowledge data.
https://github.com/patzaw/TKCat

Last synced: 9 days ago
JSON representation

This R package provides tools to manage a catalog of knowledge data.

Awesome Lists containing this project

README

        

---
title: "README"
output:
rmarkdown::github_document:
number_sections: false
toc: false
toc_depth: 2
editor_options:
chunk_output_type: console
---

```{r setup, include = FALSE}
library(knitr)
library(TKCat)
cranRef <- function(x){
sprintf(
"[%s](https://CRAN.R-project.org/package=%s): %s",
x, x, packageDescription(x)$Title
)
}
```

# Tailored Knowledge Catalog

[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/TKCat)](https://cran.r-project.org/package=TKCat)
[![](https://cranlogs.r-pkg.org/badges/TKCat)](https://cran.r-project.org/package=TKCat)

The aim of [TKCat](https://patzaw.github.io/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 detail data model generated
with [ReDaMoR](https://patzaw.github.io/ReDaMoR/) documenting the tables, their
fields and their relationships. These MDB are then gathered in catalogs that can
be easily explored an 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](https://user2022.r-project.org/) and
here are [the slides](https://patzaw.github.io/TKCat/useR2022/TKCat-useR2022-Patrice-Godard.html).

The TKCat R package is licensed under
[GPL-3](https://www.gnu.org/licenses/gpl-3.0.en.html).

# Installation

## From CRAN

```{r, eval=FALSE}
install.packages("TKCat")
```

## Dependencies

The following R packages available on CRAN are required:

```{r, echo=FALSE, results='asis'}
deps <- desc::desc_get_deps()
sdeps <- filter(deps, type %in% c("Depends", "Imports") & package!="R")
for(p in sdeps$package){
cat(paste("-", cranRef(p)), sep="\n")
}
```

And those are suggested:

```{r, echo=FALSE, results='asis'}
wdeps <- filter(deps, type=="Suggests" & package!="R")
for(p in wdeps$package){
cat(paste("-", cranRef(p)), sep="\n")
}
```

## From github

```{r, eval=FALSE}
devtools::install_github("patzaw/TKCat")
```

# Documentation

- [Introduction to TKCat](https://patzaw.github.io/TKCat/articles/TKCat.html)
(`vignette("TKCat")`)

- [Defining and using Requirements for Knowledge Management](https://patzaw.github.io/TKCat/articles/TKCat-KMR-POK.html)
(`vignette("TKCat-KMR-POK")`)

# Alternatives

- The [dm](https://github.com/krlmlr/dm) package provides similar features but
with different implementation choices. Here are the main differences:

- The **dm** data model feature is built upon the
[datamodelr](https://github.com/bergant/datamodelr) package whereas
**TKCat** relies on [ReDaMoR](https://patzaw.github.io/ReDaMoR/).
- Both **dm** and **TKCat** provides mechanisms to check the fulfillment
of the data model constrains and tools to automatically take advantage
of them.
- **dm** supports connection to many different DBMS. It also take
advantage of constraints which are documented in the DBMS when
available. **TKCat** only supports the
[ClickHouse](https://clickhouse.com/) system through the
[ClickHouseHTTP](https://github.com/patzaw/ClickHouseHTTP) or
[RClickhouse](https://github.com/IMSMWU/RClickhouse) packages.
- **TKCat** implements 3 main types of MDB based on files, memory tables
or ClickHouse database. It also provides mechanisms to automatically
convert from and to any of these implementations.
- **TKCat** supports catalogs of MDBs facilitating the exploration of
existing data. It also allows the integration of different MDBs through
the automatic identification of similar concepts (Collections) and the
automatic conversion of the different vocabulary on which they rely.