Skip to content
Boris Glavic edited this page Jun 5, 2017 · 8 revisions

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:

  • A subset of Oracle's SQL dialect extended with provenance features supporting provenance computation for SQL queries, updates, and transaction. 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. 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 fully supports Oracle and has limited support for SQLite, PostgreSQL, and MonetDB.

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.

Research behind GProM

The functionality of GProM is based on a long term research effort by the IIT 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 http://www.cs.iit.edu/~dbgroup/research.