Home - IITDBGroup/gprom GitHub Wiki

Overview

This wiki is the main source of documentation for the GProM system.

Usage

If you are new to GProM, then we recommend you to have a look at the installation guide and tutorial.

Supported Input Languages

Currently, GProM supports two frontend languages:

  • SQL: A subset of Oracle's SQL dialect with some features from other databases extended with provenance features supporting provenance computation for SQL queries, updates, and transaction as well as sequenced temporal queries, and uncertain query processing. Furthermore, the system supports export of provenance into the JSON serialization defined for the WWW PROV standard. The following wiki page describes the supported provenance extensions.
  • Datalog with support for generating provenance graphs that explain why a tuple exists or is missing from the answer of a query and for computing linage. This frontend language is described here.

Clients and APIs

  • gprom - default gprom commandline client
  • JDBC - a JDBC driver that wraps vendor specific drivers and adds provenance support through GProM
  • libgprom - a shared library
  • provgraph viewer - a web app that renders provenance graphs for Datalog queries generated by GProM

Supported Backends

Currently, GProM supports PostgreSQL, Duckdb, SQLite, MonetDB, Oracle, SQLServer.

Plugin Guide

Most components in GProM are pluggable and can be replaced. Plugins are used to select the frontend language, backend, and several other functionality in the system.

Optimization

GProM features a heuristic and cost-based optimizer for relational algebra and provenance instrumentation.

The Research behind GProM

The functionality of GProM is based on a long term research effort by the UIC DBGroup studying how to capture provenance on-demand using instrumentation. Links to publications and more research oriented descriptions of the techniques implemented in GProM can be found at https://www.cs.uic.edu/~bglavic/dbgroup/projects/gprom.html.