SetUp: Schema Evolution Through UPdates

SetUp (Schema Evolution Through UPdates) is a maintenance tool for RDF/S databases. Its main goal is to ensure validity when dealing with the evolution of an RDF/S knowledge graph. Such a graph represents a set of RDF (the instance) and RDFS (the schema) triples which respect semantic constraints.

Design principle

SetUp manages the evolutions of a RDF/S database constructed from scratch or loaded from a file. It takes as input an update and manages its application, generating and applying side-effects if necessary.

In SetUp, each atomical RDF/S update is formalized as graph rewriting rules encompassing integrity constraints. An Update is a general term and can be classified through two different aspects: insertion/deletion and schema/instance changes. Each update is formalized by a graph rewriting rule whose application necessarily preserves the databases validity. To perform an update, the applicability conditions of the corresponding rule are automatically checked. When all conditions of a rule hold, the rule is activated to produce a new graph which takes into account the required update and is necessarily valid if the graph was valid prior to the update. The use of graph rewriting rules ensures consistency preservation in design time – no further verification is needed in runtime.

If the applicability condition of a rule does not hold, the update is either rejected or SetUp force its (valid) application by performing side-effects, depending on parameters. Side-effects are implemented by procedures associated to an update type, and thus, to some rewriting rules. When an evolution is mandatory, we enforce database evolution by performing side effects (i.e., triggering other updates or schema modifications which will render possible rule application).


In its first version [1], SetUp implements deterministic rules. Arbitrary choices have been made when non-deterministic options are available. The theoretical fundations of SetUp guiding its design as well as preliminary experimental evaluations are presented in a dedicated report. UML specification and preliminary work on the future version are presented in an internship report (in french).

The second version of SetUp [2] develops these ideas and :

  • Reduces redundant side-effects and checks. Side-effects can recursively trigger other side-effects. While the first version of SetUp did terminate, redundant side-effects were sometimes triggered. In the second version, we consider their history ; i.e., what triggered it.
  • Proposes a modular management of non-determinism. It essentially produce a set of ordered lists of side-effects, each element of the set representing a distinct way of producing the update. A modular function designed to be re-implemented at wish select among this set the list to be applied by SetUp.
Code and usage

SetUp is implemented using Java and AGG (The Attributed Graph Grammar System). It can be used through its API or as a standalone tool using a textual user interface.

SetUp is distributed a propriatery license. It can be used for non-commercial purposes and the source code is available upon request for research purposes. The executable of its first version may be found here.


[1] Jacques Chabin, Cédric Eichler, Mírian Halfeld Ferrari, Nicolas Hiot. « Graph Rewriting Rules for RDF Database Evolution Management. » iiWAS 2020: 134-143

[2] Jacques Chabin, Cédric Eichler, Mírian Halfeld Ferrari, Nicolas Hiot. « Graph rewriting rules for RDF database evolution: optimizing side-effect processing. » Int. J. Web Inf. Syst. 17(6): 622-644 (2021)