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.
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).
For the time being, SetUp implements deterministic rules. Arbitrary choices have been made when non-deterministic options are available. In a future version, options while be chosen on the fly depending on quality metrics.
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).
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 may be found here.