Data and Knowledge Group

― Knowledge Representation and Reasoning

Incremental Maintenance of Datalog Materialisations Revisited

This is the webpage in support of the Journal submission of "Incremental Maintenance of Datalog Materialisations Revisited". To show the trade-offs between the different DRed, FBF, Counting and rematerialisation, we have conducted numerous tests to investigate the behaviour of the algorithms for subtraction and addition of data. The first suite tests the algorithms on small updates of only 1000 RDF-triples. The second suite determines for each algorithm and setting the point at which it is more efficient to rematerialise. We call this point the equilibrium point. We have created two versions of RDFox of which Please note that these resources are only usable under Oxford's licence agreement. A commercial licence can be obtained with Oxford Semantic Technologies.

Test Cases and data Sets

As data sets we used In our paper, we conducted our evaluation on four different test setups, the first two involving the benchmark data sets LUBM and UOBM an the latter two involving the cultural database with two different datalog programs, Claros-L and Claros-LE. For explanations of the directory structure please have a look at further down.

Our Test Results

We provide the results of our tests in a pdf-file.

Reproducing Test Results

The following zip file contain all test scripts. The scripts in the 'Robustness' and 'Scalability' subdirectories perform the actual tests, but they depend on the scripts from the 'Common' subdirectory. Thus, to run a particular test, the scripts from the 'Common' directory should be added to the 'Robustness' or 'Scalability' scripts. Each test relies on the presence of an appropriate RDFox data store. Each of the test settings from {cnt, main} x {strata, nostrata} has its own store, where cnt stands for counting and main stands for the other algorithms (DRed, FBF) For each of the test settings, a store can be created by using one of the following files to first set the variables
  • [name]-cnt-nostrata-prepare.txt
  • [name]-cnt-strata-prepare.txt
  • [name]-main-eq-prepare.txt
  • [name]-main-noeq-prepare.txt
and then subsequently use script-prepare-import.txt which writes a non-materialised store and a materialised store into the provided directory. Obviously the counting scripts need to be used with CppRDFox-Counting and the main scripts need to be used with CppRDFox.

Keeping the preset variables, one can then with script-robustness-iteration.txt execute the robustness deletion tests. These iterate through the seeds 1 to 30 and repeat the tests.

Robustness addition tests can be performed by using the variables as before but now exectuing script-robustnessAddition-iteration.txt.

The scalability deletion tests can be repeated by first setting the variables with for example DBpedia-cnt-nostrata-uniform-102717587-dataPoint.txt. Executing with this variable setting the script script-dataPoint-iteration.txt then performes the test.

The scalability addtion tests require to create a special store. This is achieved by using for example DBpedia_L-main-noeq-193350752-prepare.txt to set the variables and then execute script-prepare-addition-import.txt to create the store. The tests can then be performed by calling for example DBpedia_L-main-noeq-strata-dred-uniform-145013064-193350752-dataPoint-addition.txt. Make sure, that scripts for counting are called with CppRDFox-Counting and scripts with main in their name with CppRDFox. Also ensure, as we did in this example that the second number 193350752 of the actual test script coincides with the number in the preparation script.

Researchers

Boris Motik, Yavor Nenov, Robert Piro, Ian Horrocks

Key Publications