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.